파일 업로드

방목하기

profile
실행 시간 제한메모리 제한
1 초512 MB
📃 해결할 문제

한 농부가 최근 농장의 크기를 확장했는데, 농장의 방목 지역은 무한한 2차원 격자로 구성된 사각형 "칸"으로 생각할 수 있습니다.(각 칸은 체스판의 사각형과 비슷합니다.) 각 칸에는 맛있는 풀로 가득차 있습니다. 

농부의 NN (1N501 \le N \le 50)마리의 소들은 각자 다른 칸에 위치하며 어떤 소들은 북쪽을 바라보고 있고, 어떤 소들은 동쪽을 바라보고 있습니다.

매 시간마다, 모든 소는 다음 중 하나의 행동을 합니다.

  • 현재 칸의 풀이 이미 다른 소에 의해 먹힌 경우, 그 자리에 멈춥니다.
  • 현재 칸의 모든 풀을 먹고, 바라보는 방향으로 한 칸 앞으로 이동합니다.

시간이 지남에 따라, 각 소는 풀을 먹어치우고 빈 '칸' 을 남깁니다.

만약 두 마리의 소가 같은 움직임으로 같은 칸으로 이동하면, 그들은 칸을 공유하고 다음 시간에 각자의 방향으로 계속 이동합니다.

각 소가 먹은 풀의 양을 결정해 주세요. 어떤 소는 절대 멈추지 않고, 무한대의 풀을 먹습니다.

💻 입력

입력의 첫 번째 줄에는 NN이 주어집니다. 

다음 NN 줄 각각은 소의 시작 위치를 설명하며, N(북쪽을 바라봄) 또는 E(동쪽을 바라봄)을 나타내는 문자와 두 개의 음이 아닌 정수 xxyy (0x1090 \le x \le 10^9, 0y1090 \le y \le 10^9)가 칸의 좌표를 제공합니다. 모든 xx-좌표는 서로 다르며, yy-좌표 역시 마찬가지입니다.

방향과 좌표에 대해 가능한 한 명확하게 하면, 소가 (x,y)(x,y) 셀에 있고 북쪽으로 이동한다면, 그 소는 (x,y+1)(x,y+1) 셀에 도착하게 됩니다. 대신 동쪽으로 이동했다면, 그 소는 (x+1,y)(x+1, y) 셀에 도착하게 됩니다.

🖨️ 출력

출력은 NN개의 줄로 구성되어야 합니다. 

출력의 ii번째 줄은 입력의 ii 번째 소가 먹은 풀의 양을 설명해야 합니다. 

소가 무한대의 풀을 먹는 경우, 그 소에 대해 'Infinity'를 출력합니다.


💻 예제 입력 1
6
E 3 5
N 5 3
E 4 6
E 10 4
N 11 2
N 8 1
🖨️ 예제 출력 1
5
3
Infinity
Infinity
2
5

💡 힌트

SCORING:

  • 테스트 케이스 2-5에서, 모든 좌표는 최대 100100입니다.
  • 테스트 케이스 6-10에서는 추가 제약 사항이 없습니다.

출처: USACO 2020 December Contest, Bronze Problem 3. Stuck in a Rut