Submission #1323420

#TimeUsernameProblemLanguageResultExecution timeMemory
1323420Jawad_Akbar_JJCollider (IZhO11_collider)C++20
100 / 100
31 ms10236 KiB
#include <iostream> #include <deque> using namespace std; const int N = 1<<20, K = 1000; deque<int> d[1005]; int Ind[N]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n, m, cur = 0; string s; cin>>n>>m>>s; for (int i=1;i<=n;i++){ if (d[cur].size() == K) cur++; Ind[i] = cur; d[cur].push_back(s[i-1] - 'x'); } for (int i=1, l, r, num;i<=m;i++){ cin>>s[0]>>l; if (s[0] == 'q'){ cout<<char('x' + d[Ind[l]][l - Ind[l] * K - 1])<<'\n'; continue; } cin>>r; int i1 = Ind[l], i2 = Ind[r]; l -= i1 * K, r -= i2 * K; num = d[i1][l - 1]; d[i1].erase(begin(d[i1]) + l - 1); if (i1 < i2){ for (int j=i1;j<i2;j++) d[j].push_back(d[j+1].front()), d[j+1].pop_front(); } if (i1 > i2){ for (int j=i2;j<i1;j++) d[j+1].push_front(d[j].back()), d[j].pop_back(); } d[i2].insert(begin(d[i2]) + r - 1, num); } }
#Verdict Execution timeMemoryGrader output
Fetching results...