제출 #1353399

#제출 시각아이디문제언어결과실행 시간메모리
1353399lizi14지구 온난화 (NOI13_gw)C++20
40 / 40
280 ms31564 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define f first
#define ss second
#define ina insert
#define pb push_back
signed main(){
    int n;
    cin>>n;
    int aa[n];
    //vector<int>s;
    vector<pair<int,int>>ixvi(n);
    
    for(int i=0; i<n; i++){
        cin>>aa[i];
        ixvi[i]={aa[i],i};
        
        // if(mp[x[i]].size()==0)s.pb(x[i]);
        // mp[x[i]].pb(i);
    }
    int ans=1;
    sort(ixvi.begin(),ixvi.end());
    reverse(ixvi.begin(),ixvi.end());
    // sort(s.begin(),s.end());
    // reverse(s.begin(),s.end());
    int l=0;
    int x[n];
    fill(x,x+n,0);
    for(int i=0; i<n; i++){
        int j=i;
        while(j<n && (j==0 || (j>=1 && ixvi[j].f==ixvi[i].f)) ){
            if(j==0){
                //x[ixvi[j].ss]=1;
                l++;
            }
            else{
                int a=0,b=0;
                if(ixvi[j].ss-1>=0 &&x[ixvi[j].ss-1]==1)a=1;
                if( ixvi[j].ss+1<n && x[ixvi[j].ss+1]==1)b=1;
                if(a==1 && b==1)l--;
                if(a==0 && b==0)l++;
            }
            
            x[ixvi[j].ss]=1;
            j++;
            //if(j==n)break;
        }
        i=j-1;
        ans=max(ans,l); 
    }
    
    cout<<ans<<endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…