#263
Bronze II
잔디 깎기
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

민수는 충남대학교 정원에서 잔디를 깎는 일을 맡았다. 정원은 단위 정사각형 모양의 칸들로 이루어진 거대한 22차원 격자판으로 생각할 수 있다.

민수는 t=0t = 0일 때 격자의 한 칸에서 시작하여 그 칸의 잔디를 깎는다. 처음에는 이 시작 칸만 잔디가 깎인 상태이다. 이후 민수는 NN개의 명령에 따라 움직이며 잔디를 깎는다. 예를 들어, 첫 번째 명령이 W 10이라면 t=1t = 1부터 t=10t = 10까지(즉, 그다음 1010 단위 시간 동안) 민수는 서쪽으로 매초 한 칸씩 이동하며 경로에 있는 모든 칸의 잔디를 깎는다. 이 명령을 마치면 t=10t = 10에 민수는 처음 위치에서 서쪽으로 1010칸 떨어진 곳에 있게 된다.

민수의 작업 속도가 느리기 때문에, 민수가 작업을 마치기 전에 깎았던 잔디가 다시 자랄 수도 있다. 시간 tt에 깎인 잔디는 t+xt + x 시간에 다시 자라난다.

민수는 이동 경로 중에 같은 칸을 여러 번 방문할 수도 있다. 하지만 민수는 잔디를 깎으러 어떤 칸에 들어섰을 때, 그 칸의 잔디가 이미 깎여 있는 상태였던 적은 없었다고 회상했다. 즉, 민수가 어떤 칸을 방문할 때마다, 해당 칸을 마지막으로 방문했던 시간으로부터 최소 xx 단위 시간이 흘러 잔디가 이미 다시 자라 있어야 한다.

민수의 회상이 사실이 될 수 있게 하는 xx의 최댓값을 구하시오.

입력

첫째 줄에 명령의 개수 NN이 주어진다. (1N1001 \le N \le 100)

다음 NN개의 줄에는 각각 하나의 명령이 'D S' 형태로 주어진다. DD는 방향을 나타내는 문자(N=북, E=동, S=남, W=서)이고, SS는 해당 방향으로 이동하는 칸 수이다. (1S101 \le S \le 10)

출력

민수가 잔디가 이미 깎인 칸을 밟지 않도록 하는 xx의 최댓값을 출력한다. 만약 민수가 어떤 칸도 두 번 이상 방문하지 않는다면 -1을 출력한다.

예제 입력 1

6
N 10
E 2
S 3
W 4
S 5
E 8

예제 출력 1

10
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Bronze II1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.