Submission #895305

#TimeUsernameProblemLanguageResultExecution timeMemory
895305preskoCollider (IZhO11_collider)C++14
0 / 100
0 ms348 KiB
#include<iostream> #include<bits/stdc++.h> #define MAXN 1000010 using namespace std; int ind[MAXN]; vector<pair<int,int>> order; string s; char getans(int pos) { //int ans=pos; for(int i=0;i<(int)order.size();i++) { int l=order[i].first; int r=order[i].second; if(l<=pos && pos<=r) { order[i]={0,0};//could use -erase- /*if(r-l+1>1) { order.push_back({l,max(pos-1,l)}); order.push_back({min(pos+1,r),r}); } ans++;*/ for(int j=l+1;j<=r;j++) { ind[j-1]=ind[j]; } ind[r]=l; } else if(r<=pos && pos<=l) { order[i]={0,0}; for(int j=l-1;j>=r;j--) { ind[j+1]=ind[j]; } ind[r]=l; } } return s[ind[pos]-1]; } int main() { int n,q; ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>q; cin>>s; for(int i=0;i<(int)s.size();i++) { ind[i+1]=i+1; }//could be skipped for(int i=0;i<q;i++) { char t; cin>>t; if(t=='a') { int ql,qr; cin>>ql>>qr; if(ql<qr)order.push_back({ql,qr}); else if(qr<ql)order.push_back({ql,qr}); } else { int pos; cin>>pos; cout<<getans(pos)<<"\n"; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...