포럼
문제 USACO0209

잔디 깎기

설명

농부 존은 농장 운영의 모든 면에서 매우 믿음직하지만, 단 한 가지 예외가 있다. 그는 잔디를 제때, 논리적으로 깎는 데는 형편없다.

농장은 정사각형 단위 칸들로 이루어진 커다란 2차원 격자이다. FJ는 시각 \(t = 0\)에 이 칸들 중 하나에서 출발하여 그 칸의 잔디를 깎는데, 처음에는 이 칸만이 잔디가 깎인 유일한 칸이다. FJ의 이후 잔디 깎기 패턴은 \(N\)개의 지시로 이루어진 수열로 표현된다. 예를 들어 첫 번째 지시가 "W 10"이면, 시각 \(t = 1\)부터 \(t = 10\)까지(즉, 다음 10단위 시간 동안) FJ는 서쪽으로 한 칸씩 이동하며 그 과정에서 잔디를 깎는다. 이 단계들을 마치면 시각 \(t = 10\)에 서쪽으로 10칸 떨어진 곳에 있게 되며, 지나온 모든 칸의 잔디를 깎은 상태가 된다.

FJ의 진행이 너무 느려서, 그가 깎은 잔디 일부는 그가 잔디 깎기를 모두 마치기 전에 다시 자랄 수도 있다. 시각 \(t\)에 깎인 잔디는 시각 \(t + x\)에 다시 자라난다.

FJ의 잔디 깎기 패턴은 같은 칸을 여러 번 다시 방문하게 할 수도 있지만, 그는 잔디가 이미 깎여 있는 칸을 만난 적이 한 번도 없다고 말한다. 즉, 그가 어떤 칸을 방문할 때마다, 같은 칸에 대한 가장 최근 방문은 잔디가 다시 자라 있을 만큼 최소 \(x\)단위 시간 이전이어야 한다.

FJ의 관찰이 유효하게 유지되는 \(x\)의 최댓값을 구하시오.

Problem credits: Brian Dean

제약

Problem credits: Brian Dean

입력 형식

입력의 첫째 줄에 \(N\)(\(1 \leq N \leq 100\))이 주어진다. 나머지 \(N\)개의 줄에는 각각 'D S' 형태의 지시가 하나씩 주어진다. 여기서 D는 방향을 나타내는 문자(N=북, E=동, S=남, W=서)이고, S는 그 방향으로 이동하는 걸음 수(\(1 \leq S \leq 10\))이다.

출력 형식

FJ가 잔디가 깎인 칸을 밟는 일이 없도록 하는 \(x\)의 최댓값을 출력한다. FJ가 어떤 칸도 두 번 이상 방문하지 않는다면 -1을 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 mowing.in · 출력을 쓸 파일 mowing.out
예제 1
입력
6
N 10
E 2
S 3
W 4
S 5
E 8
출력
10
설명

In this example, FJ steps on a cell at time 17 that he stepped on earlier at
time 7; therefore, \(x\) must be at most 10 or else the grass from his first visit
would not yet have grown back. He also steps on a cell at time 26 that he also
visited at time 2; hence \(x\) must also be at most 24. Since the first of these
two constraints is tighter, we see that \(x\) can be at most 10.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2015-2016 > January > Bronze

태그

평가 및 의견

Mowing the Field

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Mowing the Field

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (mowing.in / mowing.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8