제출 #1356622

#제출 시각아이디문제언어결과실행 시간메모리
1356622mahribanGift Boxes (EGOI25_giftboxes)C++20
100 / 100
83 ms6288 KiB
#include<bits/stdc++.h>
using namespace std;
int fr[500009], ls[500009];
bool vis[500009];
int a[500009];
int main(){
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= m; i ++){
        cin >> a[i];
        if (!fr[a[i]])fr[a[i]] = i;
        ls[a[i]] = i;
    }
    int r = -1, l = 0;
    for (int i = m; i >= 1; i --){
        if (ls[a[i]] != i){r = i;break;}
    }
    int mx = 0, ansl = 0, ansr = 0;
    for (l = 1; l <= n; l ++){
        if (fr[a[l]] != l)break;
        r = max(r, ls[a[l]]);
        if (mx < m - r + l){
            mx = m - r + l;
            ansl = l + 1;
            ansr = r;
        }
    }
    for (int i = 1; i <= m; i ++){
        if (fr[a[i]] != i){l = i; break;}
    }
    for (r = m; r >= 1; r --){
        if (ls[a[r]] != r)break;
        l = min(l, fr[a[r]]);
        if (mx < m - r + l){
            mx = m - r + l;
            ansl = l;
            ansr = r - 1;        
        }
    }
    cout << ansl - 1 << ' ' << ansr - 1 << endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…