fork(1) download
  1. import sys
  2. from collections import deque
  3.  
  4. input = sys.stdin.readline
  5.  
  6. N = int(input())
  7.  
  8. graph = [[0] * (N+1) for _ in range(N+1)]
  9.  
  10. K = int(input())
  11.  
  12. for _ in range(K):
  13. x, y = map(int, input().split())
  14. graph[x][y] = 1
  15.  
  16. L = int(input())
  17. direction = []
  18.  
  19. for _ in range(L):
  20. count, dir = input().split()
  21. count = int(count)
  22. direction.append((count, dir))
  23.  
  24. dx = [0, 1, 0, -1]
  25. dy = [1, 0, -1, 0]
  26.  
  27. dir_idx = 0
  28.  
  29. snake = [1, 1]
  30. count = 0
  31. sx, sy = 1, 1
  32.  
  33. tail = deque()
  34.  
  35. while True:
  36.  
  37. if len(direction) > 0 and count == direction[0][0]:
  38. if direction[0][1] == 'L':
  39. dir_idx = (dir_idx + 3) % 4
  40. elif direction[0][1] == 'D':
  41. dir_idx = (dir_idx + 1) % 4
  42. direction.pop(0)
  43.  
  44. nx = sx + dx[dir_idx]
  45. ny = sy + dy[dir_idx]
  46. tail.append((sx, sy))
  47.  
  48. if graph[sx][sy] == 1:
  49. graph[sx][sy] == 0
  50. else:
  51. tail.popleft()
  52.  
  53. if nx > N or ny > N or nx < 1 or ny < 1 or (nx, ny) in tail:
  54. print(count+1)
  55. print(tail)
  56. exit(0)
  57.  
  58. sx = nx
  59. sy = ny
  60. count += 1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
Success #stdin #stdout 0.03s 9896KB
stdin
58
58
31 50
13 34
54 27
21 40
17 36
28 48
38 27
13 51
53 44
28 57
10 25
26 20
29 31
2 6
53 24
19 45
31 58
30 36
2 33
52 31
22 30
15 56
44 36
26 12
47 18
10 57
4 5
28 52
6 30
48 15
5 38
25 38
29 48
50 40
36 5
35 15
45 9
56 42
18 15
51 9
33 29
26 47
46 28
43 29
16 41
16 30
38 35
49 14
20 7
39 50
21 36
40 25
9 5
6 4
49 23
15 32
41 4
42 2
78
5 D
8 D
10 L
15 L
17 L
18 L
20 L
32 L
64 D
65 L
76 D
81 L
82 D
86 L
87 D
88 L
91 L
94 D
100 D
103 D
107 D
109 L
110 D
111 D
115 D
116 L
117 D
118 D
119 L
120 L
121 D
143 D
192 D
229 D
276 L
287 L
313 L
365 D
366 D
403 L
404 L
439 D
440 D
463 L
464 L
469 D
470 L
482 D
493 D
494 D
498 L
510 L
513 D
514 L
519 L
520 D
529 L
545 L
552 D
558 D
564 D
565 D
568 L
570 L
574 D
576 D
581 D
588 D
597 D
619 D
672 D
678 D
693 D
742 L
743 L
747 D
748 L
751 L
stdout
586
deque([(52, 3), (52, 4), (52, 5), (52, 6), (52, 7), (52, 8), (53, 8), (54, 8), (55, 8), (56, 8), (57, 8), (58, 8), (58, 7), (58, 6), (58, 5), (58, 4), (58, 3), (58, 2), (57, 2), (57, 3), (57, 4), (57, 5), (56, 5), (55, 5), (55, 4), (55, 3), (55, 2), (55, 1), (54, 1), (53, 1), (53, 2), (53, 3), (53, 4), (53, 5), (53, 6), (54, 6), (55, 6), (56, 6), (57, 6)])