Submission #880688

#TimeUsernameProblemLanguageResultExecution timeMemory
880688alexddCollider (IZhO11_collider)C++17
0 / 100
0 ms344 KiB
#include<iostream> #include<vector> #include<algorithm> using namespace std; const int buc = 1000; int n,m; int cntv=1; vector<char> v[1100]; pair<int,int> get_poz(int a) { int cntp=0; for(int i=1;i<=cntv;i++) { if(cntp+(int)v[i].size()>=a) { return {i,a-cntp-1}; } cntp += (int)v[i].size(); } return {-1,-1}; } signed main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>m; char ch; for(int i=1;i<=n;i++) { cin>>ch; if(i%buc==0) cntv++; v[cntv].push_back(ch); } int a,b; while(m--) { cin>>ch; if(ch=='q') { cin>>a; pair<int,int> unde = get_poz(a); cout<<v[unde.first][unde.second]<<"\n"; } else { cin>>a>>b; if(a==b) continue; pair<int,int> undea = get_poz(a); pair<int,int> undeb = get_poz(b); if(undea.first!=undeb.first || undea.second > undeb.second) { int cop = v[undea.first][undea.second]; v[undea.first].erase(v[undea.first].begin()+undea.second); v[undeb.first].insert(v[undeb.first].begin()+undeb.second, cop); } else { int cop = v[undea.first][undea.second]; v[undeb.first].insert(v[undeb.first].begin()+undeb.second, cop); v[undea.first].erase(v[undea.first].begin()+undea.second); } } } return 0; } /** xzxyyzxxzxyyzyx xzxyyzxxzxyyzyx 123456789 */
#Verdict Execution timeMemoryGrader output
Fetching results...