제출 #1173921

#제출 시각아이디문제언어결과실행 시간메모리
1173921ezzzayGlobal Warming (NOI13_gw)C++20
23 / 40
367 ms16564 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back const int N=1e6+5; int a[N]; signed main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } vector<int>v={a[1]}; for(int i=2;i<=n;i++){ if(a[i]!=v.back()){ v.pb(a[i]); } } n=v.size(); vector<pair<int,int>>vc; for(int i=1;i<=n;i++){ a[i]=v[i-1]; vc.pb({a[i],i}); } sort(vc.begin(),vc.end()); vector<bool>vis(n+1); for(int i=1;i<=n;i++)vis[i]=1; int h=1; int l=-1; int ans=1; for(auto p:vc){ int c=p.ff,x=p.ss; if(c!=l){ ans=max(ans,h); if(vis[x+1]==1 and vis[x-1]==1){ h++; } if(vis[x+1]==0 and vis[x-1]==0 )h--; vis[x]=0; c=l; } else{ if(vis[x+1]==1 and vis[x-1]==1){ h++; } if(vis[x+1]==0 and vis[x-1]==0 )h--; vis[x]=0; c=l; } } ans=max(ans,h); cout<<ans; }
#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...