WC '17 Contest 2 S3 - Battle of the Pelennor Fields
View as PDFWoburn Challenge 2017-18 Round 2 - Senior Division

An enormous, decisive battle is about to take place on the Pelennor Fields before the city of Minas Tirith! A noble army of Gondorian men will engage in battle against Sauron's evil army of orcs in an attempt to save their home and all of Middle Earth. Gandalf has given you your own vital task - not to actually participate in combat, but to report to him the state of the battle as it unfolds.
The battlefield can be represented as an infinite number line, and is
initially empty.  
 events will then occur over
the course of the battle, one after another. The 
 event's type is
indicated by the value 
 
:
- If 
, then an orc arrives on the battlefield at position
.
 - Otherwise, if 
, then a Gondorian archer arrives on the battlefield at position
, and having a bow range of
. Such an archer is able to shoot any orcs which are at most
units of distance away from
.
 
All  combatants' positions are distinct.
An orc is "vulnerable" if there's at least one archer on the battlefield
who is able to shoot that orc. After each of the  events, you'd like
to report to Gandalf the number of orcs currently on the battlefield
which are not vulnerable.
Subtasks
In test cases worth  of the points, 
 and 
 for
each applicable 
.
In test cases worth another  of the points, 
 for each
applicable 
.
In test cases worth another  of the points, 
 for
each applicable 
.
Input Specification
The first line of input consists of a single integer, .
 lines follow, the 
 of which consists of a single integer,
, followed by either 
 more integer 
 (if 
) or 
more integers 
 and 
 (if 
), for 
.
Output Specification
Output  lines, the 
 of which should consist of a single
integer, the number of non-vulnerable orcs on the battlefield after the
first 
 events.
Sample Input
7
1 15
1 22
2 18 3
1 19
2 5 12
1 23
1 0
Sample Output
1
2
1
1
1
2
2
Sample Explanation
After the  event, there are still no archers on the field, meaning
that both orcs are non-vulnerable. After the 
 event, the
newly-arrived archer is just barely able to shoot the first orc, while
the second orc is too far away and so is still non-vulnerable. After the
 event, the orcs at positions 
 and 
 are still non-vulnerable,
while the remaining 
 orcs are vulnerable.
Comments
thanks a lot. can't believe i didnt try using a custom hash in the 10 hours of optimizing...
edit: oops didnt click reply
TIL about custom hash functions. Thanks for the link!
Coordinate compression with a gp_hash_table dies on this question for some reason, switch it out for an unordered_map or map (or another coord compression method entirely, or another solution that doesn't even use coord compression) to get your solution to pass if you're running into this.