아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Войны планет

시간 제한2초메모리 제한1024 MB

요약
행성 사이의 함대 이동, 도착, 전투를 시뮬레이션하면서 각 행성의 소유자와 함대 수를 답한다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 큐
정답자
아직 제출이 없습니다

문제

Все большую и большую популярность набирает игра <<Войны планет>>. Правила игры предельно просты. На плоскости расположены nn планет, каждая из которых характеризуется координатами своего место положения x_ix\_i, y_iy\_i и скоростью производства космических кораблей s_is\_i. В игру играют два игрока. Изначально каждый игрок имеет в своем распоряжении одну планету, а все остальные планеты в начале игры являются нейтральными. Также на каждой планете в начале находится некоторое число кораблей p_ip\_i. На нейтральных планетах --- это нейтральные войска, а на планетах игроков --- это войска соответствующих игроков.

Игра состоит из раундов. В начале каждого раунда на планетах, не являющихся нейтральными, появляются дополнительные s_is\_i кораблей. Корабли мгновенно оказываются в распоряжении игрока, владеющего соответствующей планетой.

После этого игроки начинают пересылать войска с планеты на планету, при этом игрок может посылать корабли только с планет, которые ему принадлежат, и только не больше кораблей, чем на этой планете есть. Если игрок пересылает корабли с планеты с координатами (sx,sy)(sx, sy) на планету с координатами (dx,dy)(dx, dy), то корабли прибывают к планете назначения после ⌈(sx−dx)2+(sy−dy)2)⌉\lceil \sqrt{(sx - dx)^2 + (sy-dy)^2)} \rceil раундов (⌈a⌉\lceil a\rceil означает минимальное целое число, не меньшее aa).

Затем происходит прибытие войск на планеты.

В конце раунда, если на какой-то планете оказываются войска обоих игроков, то они вступают в бой. В результате сражения у каждого из игроков уничтожается x=min⁡(p_1,p_2)x = \min(p\_1,p\_2) кораблей, где p_1p\_1 --- число кораблей первого игрока на этой планете, а p_2p\_2 --- второго. После этого, если на планете остались войска игрока и нейтральные войска, то в бой вступают они, при этом бой происходит по тем же правилам.

После всех сражений, если на планете более нуля кораблей какого-то игрока, то он захватывает планету. Иначе владелец планеты остается неизменным. На этом раунд заканчивается.

Напишите программу, которая обрабатывала бы события игры, а также могла отвечать на запросы про ii-ую планету, сколько на ней войск и кто ею владеет.

입력

В первой строке входного файла целое число nn (2≤n≤1002 \le n \le 100) --- число планет. Далее следуют nn строк, по четыре целых числа xx, yy, ss и pp в каждой. Числа xx и yy (∣x∣,∣y∣≤20|x|, |y| \le 20) --- координаты соответствующей планеты, ss (0≤s≤100 \le s \le 10) --- скорость производства кораблей, pp (0≤p≤1000 \le p \le 100) --- количество кораблей на планете в начале игры. В следующей строке следуют два целых числа --- номера планет первого и второго игроков. Планеты нумеруются с единицы в порядке появления во входном файле. Гарантируется, что координаты всех планет различны.

В следующей строке входного файла одно целое число mm (0≤m≤10000 \le m \le 1000) --- количество событий и запросов, которые необходимо обработать. Каждый запрос занимает отдельную строку и начитается и с целого числа tt, характеризующего тип события/запроса.

Если t=0t = 0, то это означает конец раунда. Считается что все сражения происходят именно в момент конца раунда.

Если t=1t = 1, то происходит пересылка войск. Тогда в строке далее идут три целых положительных числа spsp, dpdp и shipsships --- номер планеты, с которой отправляются корабли, номер планеты, на которую отправляются корабли, и число отправляемых кораблей соответственно. Гарантируется, что на планете spsp будет не менее чем shipsships кораблей, планета spsp не будет нейтральной и планеты spsp и dpdp не совпадают.

Если t=2t = 2, то далее идет целое число planetplanet --- номер планеты, о которой запрашивается информация.

출력

Для каждого запроса о планете выведите в отдельной строке ее владельца и количество войск на ней на момент запроса. Следуйте формату примера. Считается что все запросы происходят после производства кораблей и до прибытия войск на планеты.

힌트

В примере войска, вылетающие в первом раунде, долетают до планеты 22 только во конце второго раунда. При этом в конце второго дня на планете 22 окажутся 1010 нейтральных кораблей, 6060 кораблей первого игрока и 5050 --- второго. После битвы кораблей игроков останутся 1010 нейтральных кораблей и 1010 кораблей первого игрока. После из сражения на планете 22 не будет ни одного корабля и она останется нейтральной.

В третьем раунде первый игрок высылает один корабль на планету 22, который в конце четвертого раунда ее захватывает.

В пятом раунде второй игрок посылает 3131 корабль на вторую планету, но когда они прибывают на планету 22 на ней уже есть 3131 корабль первого игрока. Корабли полностью уничтожают друг друга, но планета остается под контролем первого игрока.

예제1

  1. 예제 1

    입력
    3
    0 0 1 100
    1 0 10 10
    2 0 0 100
    1 3
    26
    1 1 2 60
    1 3 2 50
    2 1
    2 2
    2 3
    0
    2 1
    2 2
    2 3
    0
    2 1
    2 2
    2 3
    1 1 2 1
    2 1
    2 2
    2 3
    0
    0
    2 1
    2 2
    2 3
    1 3 2 31
    0
    0
    2 2
    
    예상 출력
    Player1 41
    Neutral 10
    Player2 50
    Player1 42
    Neutral 10
    Player2 50
    Player1 43
    Neutral 0
    Player2 50
    Player1 42
    Neutral 0
    Player2 50
    Player1 44
    Player1 11
    Player2 50
    Player2 20