제출 #1358736

#제출 시각아이디문제언어결과실행 시간메모리
1358736imchyGift Boxes (EGOI25_giftboxes)C++20
11 / 100
116 ms27612 KiB
#include <bits/stdc++.h>

using namespace std;

int main(){
    int t, n, c;
    cin>>t>>n;
    vector<vector<int>> con(t);

    for(int i=0;i<n;i++){
        cin>>c;
        con[c].push_back(i);
    }

    int id1=n, id2=0, f=0, ff=0;
    for(int i=0;i<t;i++){
        if(con[i].size()==2){
            f++;
            if(con[i][0]<n/2 and con[i][1]>=n/2)
                ff++;
        }
        if(con[i].size()>1){
            int b=0;
            for(int j=0;j<con[i].size();j++){
                if(con[i][j]>=id1 and con[i][j]<=id2){
                    b++;
                }
            }
            if(b>=con[i].size()-2){
                b=0;
                continue;
            }

            if(con[i][0]<id1 and con[i][con[i].size()-1]>id2){
                if(con[i][0]==0){
                    id1=min(id1, con[i][1]);
                    id2=max(id2, con[i][con[i].size()-1]);
                }
                else if(con[i][con[i].size()-1]==n-1){
                    id1=min(id1, con[i][0]);
                    id2=max(id2, con[i][con[i].size()-2]);
                }
                else{
                    if(id1-con[i][0]<con[i][con[i].size()-1]-id2){
                        id1=con[i][0];
                        id2=max(id2, con[i][con[i].size()-2]);
                    }
                    else{
                        id1=min(con[i][1], id1);
                        id2=con[i][con[i].size()-1];
                    }
                }
            }
            else{
                id1=min(id1, con[i][1]);
                id2=max(id2, con[i][con[i].size()-2]);
            }
        }
    }

    if(n==2*t and ff==t and f==t){
        id1=0;
        id2=n/2-1;
    }

    cout<<id1<<" "<<id2;

    return 0;
}


/*id1=min(id1, con[i][1]);
            int tj=id2;
            id2=max(id2, con[i][con[i].size()-1]);


            if(id2==n-1){
                id2=max(tj, con[i][con[i].size()-2]);
            }
            if(id2<id1){
                id2=id1;
            }*/
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…