포럼
문제 USACO0597

맨해튼 산책

설명

농부 존과 그의 소 \(Q\)마리 (\(1 \leq Q \leq 2 \cdot 10^5\))가 맨해튼으로 휴가를 왔는데, 소들이 탈출해서 도시를 자유롭게 돌아다니고 있다! 맨해튼은 아주 커서 \(N\) (\(1 \le N \le 2 \cdot 10^5\))개의 도로가 \(x\)-\(y\) 평면에서 무한히 뻗어 있지만, 다행히도 모든 도로는 완벽하게 수평 또는 수직으로 나 있다. 각 수평 도로와 수직 도로는 \(y = c_i\) 또는 \(x = c_i\) 형태의 방정식으로 나타낼 수 있으며, \(c_i\)\(0\) 이상 \(10^9\) 이하의 정수이다.

농부 존은 각 소가 어디에서 걷기 시작했는지, 얼마나 오래전에 탈출했는지 정확히 알고 있다. 소들은 매우 예측 가능해서 각자 다음 규칙에 따라 걷는다.

  • 북쪽 (\(+y\)) 또는 동쪽 (\(+x\))으로만 초당 1단위 속도로 걷는다.
  • 현재 도로 하나 위에만 있다면 그 도로의 방향을 따라 계속 걷는다.
  • 두 도로의 교차점에 있다면, 지금까지 걸은 시간이 짝수 초이면 북쪽으로, 홀수 초이면 동쪽으로 걷는다.

맨해튼의 도로 배치와 각 소의 정보가 주어질 때, 소들이 지금 어디에 있는지 농부 존이 알아내도록 도와주자!

출제: Benjamin Qi

제약

배점

  • 입력 2-4: \(N, Q, c_i, x_i, y_i, d_i \leq 100\).
  • 입력 5-9: \(N, Q\le 3000\).
  • 입력 10-20: 추가 제약 없음.

출제: Benjamin Qi

입력 형식

첫째 줄에 \(N\)\(Q\)가 주어진다.

다음 \(N\)개의 줄에 도로에 대한 설명이 주어진다. 각 도로는 방향(H 또는 V)과 좌표 \(c_i\)로 주어진다. 도로들은 서로 겹치지 않음이 보장된다.

다음 \(Q\)개의 줄에 소에 대한 설명이 주어진다. 각 소는 세 정수 \((x_i, y_i, d_i)\)로 주어지며, 이는 정확히 \(d_i\)초 전에 \((x_i, y_i)\)에서 걷기 시작했다는 뜻이다. \((x_i, y_i)\)는 어떤 도로 위에 있음이 보장되며, \(0 \le x_i, y_i, d_i \le 10^9\)이다.

출력 형식

\(Q\)개의 줄을 출력한다. \(i\)번째 줄에는 \(i\)번째 소의 현재 위치를 출력한다.

예제 1
입력
4 5
V 7
H 4
H 5
V 6
6 3 10
6 4 10
6 5 10
6 6 10
100 4 10
출력
14 5
7 13
6 15
6 16
110 4
설명

The first two cows took the following paths:

(6, 3) -> (6, 4) -> (7, 4) -> (7, 5) -> (8, 5) -> ... -> (14, 5)
(6, 4) -> (6, 5) -> (7, 5) -> (7, 6) -> ... -> (7, 13)
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2023-2024 > January > Gold

태그

평가 및 의견

Walking in Manhattan

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

Log in to rate problems.

개별 의견

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

풀이 제출

Walking in Manhattan

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8