Hướng dẫn giải của HSG12 Long An 2024 - Vòng 1 - Bài 2
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.
Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.
Tác giả:
Ý tưởng
- Dùng cấu trúc dữ liệu
map
để lưu trữ thời điểm cuối cùng mà ID xuất hiện. - Duyệt lại mảng ~a~, ta tính ~max~ các thời gian đọc và cập nhật kết quả.
Code tham khảo của
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n; long long a[N]; map<long long, int> m; int main() { freopen("TIMELINE.INP", "r", stdin); freopen("TIMELINE.OUT", "w", stdout); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; m[a[i]] = i; } int Max = -1; long long id = 0; for (int i = 1; i <= n; i++) { if (m[a[i]] - i > Max) { Max = m[a[i]] - i; id = a[i]; } } cout << id << '\n' << Max; return 0; }
Bình luận