SEGWAY
시간 제한1초메모리 제한512 MB
300m 트랙을 세 구간으로 나누어 N명의 라이더가 달리고, 가속 지점에 도달하면 앞선 라이더 수 X에 따라 X mod 20미터 동안 최대 속도(1초/m)를 얻는 경주를 시뮬레이션하여 각 라이더의 완주 시간을 출력한다.
문제
두브로브니크 시에서 세그웨이 경주가 열린다. 경주 트랙은 세 구간으로 이루어져 있고 각 구간의 길이는 100미터이다. 따라서 트랙의 전체 길이는 300미터이다. 세그웨이 배터리의 한계 때문에 각 선수는 전략을 세운다. 처음 100미터에서의 속도, 다음 100미터에서의 속도, 마지막 100미터에서의 속도가 그 전략이며, 세그웨이를 최대 속도까지 가속할 수 있을 때는 예외이다(다음 문단에서 설명한다). 안타깝게도 세그웨이는 매우 느려서 1미터를 가는 데 1초에서 50초가 걸린다. 그래서 이 문제에서 속도는 초당 미터가 아니라 미터당 초 단위로 주어진다.
트랙을 따라 여러 가속 지점(가속기)이 있다. 선수가 가속기에 도달하면 세그웨이에 추가 동력이 공급되어, 그가 가속기에 도달한 순간 자신보다 엄격하게 앞서 있는 선수의 수 X에 대해 다음 X mod 20미터 동안 최대 속도인 1미터당 1초로 달릴 수 있다. 앞서 있는 선수에는 이미 경주를 마친 선수도 포함된다. 선수는 이전 가속기에서 받은 추가 동력을 모두 소비하기 전에는 다른 가속기를 사용할 수 없다. 추가 동력을 모두 소비한 순간 새로운 가속기가 없으면, 선수는 해당 트랙 구간의 기본 속도로 계속 이동한다.
선수는 최적의 전략이 아니더라도 사용할 수 있는 가속기는 항상 사용한다고 가정한다. 가속기는 여러 선수가 동시에 사용할 수도 있다. 이 경주를 시뮬레이션하는 프로그램을 작성하시오. 모든 세그웨이 선수가 동시에 출발한다고 가정할 때, 각 선수의 완주 시간을 초 단위로 출력하시오.
입력
첫째 줄에는 선수의 수 N (2 ≤ N ≤ 20 000)이 주어진다.
다음 N개 줄 중 K번째 줄에는 K번째 선수의 트랙 처음 100미터, 다음 100미터, 마지막 100미터에서의 기본 속도를 나타내는 1 이상 50 이하의 정수 세 개가 주어진다.
그다음 줄에는 가속 지점의 수 M (0 ≤ M ≤ 299)이 주어진다.
M > 0이면, 다음 줄에 트랙 시작점으로부터 가속기까지의 거리를 미터 단위로 나타내는 1 이상 299 이하의 정수 M개가 엄격히 증가하는 순서로 주어진다.
출력
N개 줄을 출력한다. K번째 줄에는 K번째 선수에게 필요한 시간을 출력한다.