Submission #796741

#TimeUsernameProblemLanguageResultExecution timeMemory
796741amirhoseinfar1385Abracadabra (CEOI22_abracadabra)C++17
40 / 100
311 ms33504 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=200000+10; int n,q; int all[maxn],res[maxn],link[maxn]; set<int>st,salam; void solve(int v){ st.clear(); st.insert(n+1); salam.clear(); salam.insert(n+1); for(int i=1;i<=n;i++){ link[all[i]]=i; } int now=n; int ted=n/2; for(int i=n;i>=1;i--){ //<<i<<endl; auto x=*st.lower_bound(link[i]); auto y=*salam.upper_bound(link[i]); x=min(x,y); if(x==link[i]) { continue; } int len=x-link[i]; int z=0,ft=ted; if(ted>0){ int f=min((len-1)/ted,v); z=len-f*ted; for(int j=link[i]+len-ted;j>link[i]+z-1;j-=ted){ salam.insert(j); } v-=f; ted-=z; } else{ z=len; } //cout<<len<<" "<<ted<<" "<<z<<" "<<i<<" "<<link[i]<<" "<<x<<"\n"; //<<len<<" "<<ted<<" "<<z<<endl; for(int j=z-1;j>=0;j--){ //<<j<<" "<<link[i]<<" "<<all[link[i]+j]<<" "<<len<<" "<<now<<endl; res[now]=all[link[i]+j]; st.insert(link[i]+j); now--; //<<"salam"<<endl; } } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("inp.txt","r",stdin); //freopen("out2.txt","w",stdout); cin>>n>>q; for(int i=1;i<=n;i++){ cin>>all[i]; } int u,v; cin>>v>>u; solve(v); int lastv=v; cout<<res[u]<<"\n"; for(int i=1;i<q;i++){ cin>>v>>u; if(lastv!=v){ assert(0); solve(v); lastv=v; } cout<<res[u]<<"\n"; } }

Compilation message (stderr)

Main.cpp: In function 'void solve(int)':
Main.cpp:27:11: warning: unused variable 'ft' [-Wunused-variable]
   27 |   int z=0,ft=ted;
      |           ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...