Submission #110706

#TimeUsernameProblemLanguageResultExecution timeMemory
110706ckodserCake (CEOI14_cake)C++14
0 / 100
2065 ms2684 KiB
#include<bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair #define ld long double #define F first #define S second #define pii pair<ll,ll> using namespace :: std; const ll mod=1e9+7; const ll maxn=5e5+500; const ll inf=1e9+900; const ll sq=12; ll p[maxn]; ll n,a; vector<pii> best; ll find_max(ll e){ ll l=e; ll r=a; if(r<l){ swap(l,r); } ll ans=0; for(ll i=l;i<=r;i++){ ans=max(ans,p[i]); } return ans; } ll find_first_high(ll x,ll f){ for(ll i=a;;i+=f){ if(p[i]>x)return i; } return 0; } void update(ll pos,ll v){ p[pos]=best[best.size()-v].F+1; bool bod=0; for(ll i=best.size()-v+1;i<best.size();i++){ if(best[i].S!=pos){ p[best[i].S]++; best[i].F++; }else{ bod=1; best[i].F=p[pos]; } } if(!bod){ best.pb(mp(p[pos],pos)); } sort(best.begin(),best.end()); if(best.size()>sq){ reverse(best.begin(),best.end()); best.pop_back(); reverse(best.begin(),best.end()); } } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>a; p[0]=inf; p[n+1]=inf; for(ll i=1;i<=n;i++){ cin>>p[i]; if(p[i]>=n-sq){ best.pb(mp(p[i],i)); } } sort(best.begin(),best.end()); ll q; cin>>q; for(ll i=0;i<q;i++){ char c; cin>>c; if(c=='F'){ ll e; cin>>e; ll mi=find_max(e); ll o; if(e==a){ cout<<0<<endl; continue; } if(e<a){ o=find_first_high(mi,1); }else{ o=find_first_high(mi,-1); } cout<<abs(o-e)-1<<endl; }else{ ll p,v; cin>>p>>v; update(p,v); } } }

Compilation message (stderr)

cake.cpp: In function 'void update(long long int, long long int)':
cake.cpp:44:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(ll i=best.size()-v+1;i<best.size();i++){
                              ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...