10431: USACO 2024 January Contest, Gold Problem 1. Walking in Manhattan
[Creator : ]
Description
Farmer John and his $Q$ ($1 \leq Q \leq 2 \cdot 10^5$) cows are in Manhattan on
vacation, but the cows have escaped and are now walking around freely in the
city! Manhattan is huge – so huge that its $N$ ($1 \le N \le 2 \cdot 10^5$)
roads stretch infinitely in the $x$-$y$ plane, but conveniently, those roads all
run perfectly horizontally or vertically. Each horizontal and vertical road can
be modeled by an equation of the form $y = c_i$ or $x = c_i$, where $c_i$ is an
integer in the range $0$ to $10^9$ inclusive.
Farmer John knows exactly where each cow started walking and how long ago they escaped. Cows are very predictable, so each of them walks according to the following pattern:
- They only walk north ($+y$) or east ($+x$) at one unit per second.
- If they are currently on a single road, they continue walking along the road's direction.
- If they are at the intersection of two roads, they walk north if they have been walking for an even number of seconds and east otherwise.
Given the layout of Manhattan and the information for each cow, help Farmer John determine where his cows are now!
Input
The first line contains $N$ and $Q$.
The next $N$ lines describe the roads. Each road is described by a direction (H or V) and a coordinate $c_i$. It is guaranteed that the roads are unique.
The next $Q$ lines describe the cows. Each cow is described by three integers $(x_i, y_i, d_i)$, meaning that they started walking from $(x_i, y_i)$ exactly $d_i$ seconds ago. It is guaranteed that $(x_i, y_i)$ lies on some road, and $0 \le x_i, y_i, d_i \le 10^9$.
Output
Output $Q$ lines, where the $i$th line contains the current position of the
$i$th cow.
Sample 1 Input
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
Sample 1 Output
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)