Submission #1357267

#TimeUsernameProblemLanguageResultExecution timeMemory
1357267sallyGift Boxes (EGOI25_giftboxes)C++20
100 / 100
76 ms33656 KiB
#include<iostream>
#include<vector>
#include<set>
#include<cstring>
using namespace std;
const int mx = 5e5+5;
vector<int> team(mx);
vector<int> cnt(mx, 0);
int T, N;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>T>>N;
    int end = -1;
    vector<vector<int>> pos(mx);
    vector<int> ptr(mx, 0);
    for(int i=0; i<N; i++) {
        cin>>team[i];
        pos[team[i]].push_back(i);
    }
    int L = 0, R = 0;
    int nums = 1, mn = N+5, l, r;
    for(int i=0; i<T; i++) {
        int k;
        if(pos[i].size()>=2) k = pos[i][pos[i].size()-2];
        else k = 0;
        R = max(R, k);
    }
    mn = (R - L + 1);
    l = L;
    r = R;
    while(true) {
        int t = team[L];
        ptr[t]++;
        if(ptr[t]>=2) break;
        L++;
        R = max(R,(pos[t][pos[t].size()-1]));
        if((R - L + 1) < mn) {
            mn = R - L + 1;
            l = L;
            r = R;
        }
    }
    cout<<l<<' '<<r;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...