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ả: kieuphat159

Ý 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 kieuphat159
#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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.