1 条题解
-
0
//rope版本 #include <bits/stdc++.h> #include <ext/rope> using namespace std; using namespace __gnu_cxx; rope<char> a; int q, pos = 0; char s[10000005]; signed main() { cin >> q; while(q --) { string opt; cin >> opt; int x; switch(opt[0]) { case 'M': { cin >> x; pos = x; break; } case 'I': { cin >> x; int cnt = 0; getchar();for(int i = 0; i < x; i++) s[i] = getchar(); a.insert(pos, s, x); break; } case 'D': { cin >> x; a.erase(pos, x); break; } case 'R': { cin >> x; a.copy(pos, x, s); reverse(s, s + x); a.erase(pos, x); a.insert(pos, s, x); break; } case 'G': { cout << a[pos]; if(a[pos] != 10) cout << '\n'; break; } case 'P': { pos --; break; } case 'N': { pos ++; break; } } } return 0; }
- 1
信息
- ID
- 2922
- 时间
- 3000ms
- 内存
- 1024MiB
- 难度
- 9
- 标签
- 递交数
- 27
- 已通过
- 2
- 上传者