Skip to content

Commit 707b61c

Browse files
authored
14min 3sec
1 parent 9431100 commit 707b61c

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

1406.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# pragma optimize("O3")
2+
# pragma GCC optimize ("Ofast")
3+
# pragma GCC optimize ("unroll-loops")
4+
# pragma GCC target("sse,sse2,sse3,ssse3,sse4,avx,avx2")
5+
#include <iostream>
6+
#include <list>
7+
using namespace std;
8+
int main() {
9+
ios::sync_with_stdio(false);
10+
cin.tie(NULL);
11+
list<char> l;
12+
string data;
13+
char cmd;
14+
cin>>data;
15+
int m, pos = data.length();
16+
for(int i = 0; i < data.length(); ++i)
17+
l.push_back(data[i]);
18+
cin>>m;
19+
list<char>::iterator it = l.end();
20+
--it;
21+
for(int i = 0; i < m; ++i){
22+
cin>>cmd;
23+
switch (cmd) {
24+
case 'L':
25+
if(pos) --pos, --it; break;
26+
case 'D':
27+
++it, ++pos;
28+
if(it == l.end()) --pos, --it; break;
29+
case 'B':
30+
if(pos) l.erase(it--), --pos;
31+
break;
32+
case 'P': cin>>cmd; l.insert(++it, cmd); --it; ++pos; break;
33+
}
34+
}
35+
for(char c : l)
36+
cout<<c;
37+
}

0 commit comments

Comments
 (0)