제출 #1340208

#제출 시각아이디문제언어결과실행 시간메모리
1340208hsuan._.0528Gift Boxes (EGOI25_giftboxes)C++20
100 / 100
1539 ms25880 KiB
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define LL long long
#define pii pair<int, LL>
#define F first
#define S second
const int maxn = 1e6+10;
const int mod = 998244353;
const int inf = 1e9;

int n, t;
int a[maxn];
map<int, int> mp;

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>t>>n;
  int cnt=0, ans=inf, l=0, r=0;
    for(int i=0; i<n; i++){
      cin>>a[i];
      mp[a[i]]++;
      if(mp[a[i]]==2)  cnt++;
    }
 // cout<<mp[3];
 // cout<<cnt<<"\n";
    for(int i=0, j=-1; i<n; i++){
    //  cout<<i<<" "<<j<<" "<<cnt<<"\n";
      while(cnt and j+1<n){
       //  cout<<i<<" "<<j<<" "<<cnt<<"\n";
        j++;
        mp[a[j]]--;
        if(mp[a[j]]==1)  cnt--;
      }
      if(cnt==0){
        if(j-i<ans){
          //cout<<i<<" "<<j<<" "<<cnt<<"\n";
          ans=j-i;
          l=i, r=j;
        }
      }
      if(i<=j){
        mp[a[i]]++;
        if(mp[a[i]]==2)  cnt++;
      }
    }
  cout<<l<<" "<<r;

}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...