1
+ from collections import defaultdict
2
+
3
+ def solution (n , k , cmd ):
4
+ answer = ['O' ] * n
5
+ l_list = defaultdict (list )
6
+
7
+ for i in range (1 , n + 1 ):
8
+ l_list [i ].append (i - 1 )
9
+ l_list [i ].append (i + 1 )
10
+
11
+ deleted = []
12
+ k += 1
13
+
14
+ for com in cmd :
15
+ c = com .split ()
16
+
17
+ if c [0 ] == "D" :
18
+ for _ in range (int (c [1 ])):
19
+ k = l_list [k ][1 ]
20
+ elif c [0 ] == "U" :
21
+ for _ in range (int (c [1 ])):
22
+ k = l_list [k ][0 ]
23
+ elif c [0 ] == "C" :
24
+ prev , next = l_list [k ]
25
+ deleted .append ([prev , next , k ])
26
+ answer [k - 1 ] = "X"
27
+
28
+ if next == n + 1 :
29
+ k = l_list [k ][0 ]
30
+ else :
31
+ k = l_list [k ][1 ]
32
+
33
+ if prev == 0 :
34
+ l_list [next ][0 ] = prev
35
+ elif next == n + 1 :
36
+ l_list [prev ][1 ] = next
37
+ else :
38
+ l_list [prev ][1 ] = next
39
+ l_list [next ][0 ] = prev
40
+ else :
41
+ prev , next , now = deleted .pop ()
42
+ answer [now - 1 ] = "O"
43
+
44
+ if prev == 0 :
45
+ l_list [next ][0 ] = now
46
+ elif next == n + 1 :
47
+ l_list [prev ][1 ] = now
48
+ else :
49
+ l_list [prev ][1 ] = now
50
+ l_list [next ][0 ] = now
51
+
52
+ return "" .join (answer )
0 commit comments