제출 #1354965

#제출 시각아이디문제언어결과실행 시간메모리
1354965mxhrvsGift Boxes (EGOI25_giftboxes)C++20
19 / 100
91 ms10040 KiB
#include<bits/stdc++.h>
using namespace std;
int rx,lx,r,l;
void check() {
    if (rx - lx < r - l) {
        r = rx;
        l = lx;
    }
}
signed main(){
    int t,n;
    cin >> t >> n;
    vector<int> suff(n,-1),pref(n,-1),cnt(t,0);
    vector<int> a(n,0);
    for(int i = 0; i < n; i ++){
        cin >> a[i];
        if(pref[a[i]] == -1) pref[a[i]] = i;
        suff[a[i]] = i;
    }
    int mxl = 0,mxr = n - 1;
    for(int i = 0; i < n; i ++){
        if(cnt[a[i]] != 0) break;
        cnt[a[i]] ++;
        mxl ++;
    }
    cnt.resize(n,0);
    
    for(int i = n - 1; i >= 0; i --){
        if(cnt[a[i]] != 0) break;
        cnt[a[i]] ++;
        mxr --;
    }
    r = n - 1;
    rx = mxr;
    for (int i = 0; i < mxl; i++) {
        lx = i + 1;
        rx = max(rx, suff[a[i]]);
        check();
    }
    lx = mxl;
    for (int i = n - 1; i > mxr; i--) {
        rx = i - 1;
        lx = min(lx, pref[a[i]]);
        check();
    }
    cout << l << " " << r << '\n';
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…