충돌
시간 제한9초메모리 제한2048 MB
원형 호수 둘레 L을 달리는 참가자 명단이 주어질 때, 각 추가 또는 삭제 후 T초 동안 두 참가자가 만나는 횟수를 구합니다.
문제
비타로는 크고 둥근 호수 둘레에 살고 있다. 호수 둘레의 길이는 이고, 둘레의 한 지점에 비타로의 집이 있다. 집에서 호수 둘레를 시계 방향으로 ()만큼 이동한 지점을 지점 라고 부른다. 현재 호수 둘레에서 마라톤 대회가 계획되고 있다.
비타로가 들은 대회 진행 방식은 다음과 같다.
- 번호 부터 까지가 적힌 배번이 각각 한 장씩 준비되어 있다. 참가자는 배번 중 하나를 달고 뛴다. 배번 ()을 단 참가자의 출발 지점은 지점 이다.
- 대회가 시작된 뒤 초 동안 참가자들은 각자의 속도로 호수 둘레를 시계 방향으로 이동한다. 시작한 지 초 ()가 지난 시점을 시각 라고 부른다.
비타로는 마라톤 대회 참가자 명단을 갖고 있다. 현재 명단에는 명이 올라 있다. 번째 참가자 ()는 배번 를 달고, 초당 의 속도로 호수 둘레를 시계 방향으로 이동할 예정이다.
명단을 바탕으로 비타로는 대회 중 일어나는 충돌의 횟수를 구했다. 여기서 충돌은 서로 다른 참가자 두 명이 같은 지점에 있는 경우를 말한다. 정확히는, 을 만족하는 정수 와 를 만족하는 실수 로 이루어진 순서쌍 가운데 다음 조건을 모두 만족하는 것의 개수를 구했다.
- 배번 를 단 참가자가 있다.
- 배번 를 단 참가자가 있다.
- 배번 를 단 참가자와 배번 를 단 참가자가 시각 에 같은 지점에 있다.
그 뒤 참가자 명단에 번의 변경이 있었다. 번째 변경 ()은 정수 , 로 주어지며 다음과 같다.
- 현재 배번 를 달고 초당 의 속도로 호수 둘레를 시계 방향으로 이동하는 사람이 명단에 있으면, 그 사람을 명단에서 지운다. 없으면, 배번 를 달고 초당 의 속도로 이동하는 사람을 명단에 새로 추가한다.
단, 어떤 변경이 끝난 시점에서도 명단에는 참가자가 2명 이상 있고, 참가자가 단 배번은 모두 서로 다르다고 보장된다.
비타로는 각 변경이 끝난 시점의 참가자들에 대해 대회 중 일어나는 충돌의 횟수를 알고 싶어 한다. 제약에 따라 충돌 횟수가 유한하다는 것은 증명할 수 있다.
입력
첫 번째 줄에 , , 가 주어진다.
두 번째 줄에 이 주어진다.
세 번째 줄에 이 주어진다.
네 번째 줄에 가 주어진다.
이어서 개의 줄에 각각 와 가 주어진다.
출력
개의 줄을 출력한다. 번째 줄 ()에는 번째 변경이 끝난 시점의 참가자들에 대해 대회 중 일어나는 충돌의 횟수를 로 나눈 나머지를 출력한다.
제한
- .
- .
- .
- ().
- ().
- ().
- .
- .
- ().
- ().
- 어떤 변경이 끝난 시점에서도 참가자는 2명 이상이다.
- 어떤 변경이 끝난 시점에서도 참가자의 출발 지점은 서로 다르다.
- 입력되는 값은 모두 정수이다.