Attack of the Bloons

View as PDF

Submit solution

Points: 10
Time limit: 2.5s
Memory limit: 64M

Problem type
University of Toronto ACM-ICPC Tryouts 2012

The Bloons (not to be confused with balloons) are attacking! They are attempting to navigate your course of L (1 \le L \le 1\,000) cells, laid out in a row and numbered from 1 to L. You don't know what they'll do to you if they manage reach the end, and you don't want to find out! To that end, you've constructed some defensive towers along the course. You might say that this is a Bloons Tower Defense.

There are N (1 \le N \le 1\,000) towers ready to take out any Bloons that get close. The i-th tower is located next to cell C_i (1 \le C_i \le L), and can launch darts at any Bloons that are no more than R_i (0 \le R_i \le 1\,000) cells away - that is, Bloons in cells C_i - R_i to C_i + R_i, inclusive. Every second, it will do D_i (1 \le D_i \le 10^9) HP worth of damage to any Bloons in this range.

M (1 \le M \le 1\,000) Bloons will attempt to float through your course, one after another. The i-th Bloon begins with H_i (1 \le H_i \le 10^9) HP, and will pop as soon as it has taken at least that much damage in total. Each Bloon starts in cell 1, and moves along the course at a speed of 1 cell per second. If a Bloon moves past cell L, it safely exits the course and can no longer be popped.

There are T (1 \le T \le 20) scenarios as described above. For each, you'd like to determine how far along the course each of the M Bloons will make it.

Input Specification

Line 1: 1 integer, T
For each scenario:
Line 1: 2 integers, L and N
Next N lines: 3 integers, C_i, R_i, and D_i, for i = 1 \dots N
Next line: 1 integer, M
Next M lines: 1 integer, H_i, for i = 1 \dots M

Output Specification

For each scenario:
M lines: If the i-th Bloon will survive the course, the string Bloon leakage - otherwise, 1 integer, the furthest cell which the i-th Bloon will reach, for i = 1 \dots M

Sample Input

10 3
3 3 1
4 0 4
10 2 2

Sample Output

Bloon leakage

Explanation of Sample

The following diagram illustrates which cells each tower can hit:

The first Bloon, having only 1 HP, will go down to the first tower in cell 1.
The second Bloon will manage to clear the course, surviving past cell 10 with 4 HP remaining.
The third Bloon will lose its final HP while at cell 5, having taken 5 damage from the first tower, and 4 from the second.
The final Bloon will survive past cell 6 with 1 HP remaining, but will then go down at cell 8 when it takes 2 damage from the third tower.


There are no comments at the moment.