#1417
Platinum III

충돌

서브테스크
원문: 日本語
시간 제한
9s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

비타로는 커다란 원형 호수의 주위에 살고 있다. 호수의 둘레 길이는 LL 이며, 호수 주위의 어떤 지점에는 비타로의 집이 있다. 비타로의 집에서 호수 주위를 시계 방향으로 xx (0x<L0 \le x < L) 만큼 이동한 지점을 지점 xx 라고 부른다. 현재, 호수 주위에서 열리는 마라톤 대회가 기획되고 있다.

비타로는 마라톤 대회가 다음과 같이 진행될 예정이라는 것을 들었다.

  • 00 부터 L1L - 1 까지 번호가 매겨진 번호표가 11 장씩 준비되어 있다. 마라톤 대회의 참가자는 번호표 중 하나를 착용한다. 번호표 ll (0lL10 \le l \le L - 1) 을 착용한 참가자의 출발 지점은 지점 ll 이 된다.
  • 마라톤 대회가 시작된 후, TT 초 동안 참가자는 각자의 속도로 호수 주위를 시계 방향으로 이동한다. 마라톤 대회가 시작되고 나서 tt 초 (0tT0 \le t \le T) 가 지난 시점을 시각 tt 라고 부른다.

비타로는 마라톤 대회의 참가자 명부를 가지고 있다. 현재는 NN 명의 참가자가 참가자 명부에 기재되어 있으며, ii 번째 참가자 (1iN1 \le i \le N) 는 번호표 AiA_{i} 를 착용하고, 11 초당 SiS_{i} 의 속도로 호수 주위를 시계 방향으로 이동할 예정이다.

참가자 명부를 바탕으로, 비타로는 마라톤 대회 중에 일어나는 충돌의 횟수를 구했다. 여기서 충돌이란 서로 다른 참가자 22 명이 같은 지점에 있는 것을 가리킨다. 엄밀하게는, 0p<qL10 \le p < q \le L - 1 을 만족하는 정수 p,qp, q0tT0 \le t \le T 를 만족하는 실수 tt 로 이루어진 조 (p,q,t)(p, q, t) 중에서 다음 조건을 만족하는 것의 개수를 구했다.

  • 번호표 pp 를 착용한 참가자가 있다.
  • 번호표 qq 를 착용한 참가자가 있다.
  • 번호표 pp 를 착용한 참가자와 번호표 qq 를 착용한 참가자가 시각 tt 에 같은 지점에 있다.

그러나 그 후 참가자 명부에 QQ 번의 변경이 이루어졌다. jj 번째 (1jQ1 \le j \le Q) 변경은 22 개의 정수 Xj,YjX_{j}, Y_{j} 로 표현되며, 다음과 같다.

  • 현재 번호표 XjX_{j} 를 착용하고 11 초당 YjY_{j} 의 속도로 호수 주위를 시계 방향으로 이동하는 사람이 참가자 명부에 기재되어 있는 경우, 그 사람을 참가자 명부에서 삭제한다. 그렇지 않은 경우, 번호표 XjX_{j} 를 착용하고 11 초당 YjY_{j} 의 속도로 호수 주위를 시계 방향으로 이동하는 사람을 새로 참가자 명부에 추가한다.

단, 어느 변경이 끝난 시점에서도 참가자 명부에 기재되어 있는 참가자는 22 명 이상이며, 참가자가 착용하는 번호표는 서로 다름이 보장된다.

비타로는 각각의 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중에 일어나는 충돌의 횟수를 알고 싶다. 문제의 제약에 의해, 마라톤 대회 중에 일어나는 충돌의 횟수가 유한함을 증명할 수 있다.

마라톤 대회와 참가자 명부에 대한 변경의 정보가 주어졌을 때, 각각의 변경이 끝난 시점의 참가자에 대하여 마라톤 대회 중에 일어나는 충돌의 횟수를 10000000071\,000\,000\,007 로 나눈 나머지를 구하는 프로그램을 작성하시오.

제한

  • 2N2 \le N.
  • NL109N \le L \le 10^{9}.
  • 1T1091 \le T \le 10^{9}.
  • 0AiL10 \le A_{i} \le L - 1 (1iN1 \le i \le N).
  • AiAjA_{i} \neq A_{j} (1i<jN1 \le i < j \le N).
  • 1Si1091 \le S_{i} \le 10^{9} (1iN1 \le i \le N).
  • 1Q1 \le Q.
  • N+Q100000N + Q \le 100\,000.
  • 0XjL10 \le X_{j} \le L - 1 (1jQ1 \le j \le Q).
  • 1Yj1091 \le Y_{j} \le 10^{9} (1jQ1 \le j \le Q).
  • 어느 변경이 끝난 시점에서도 참가자는 22 명 이상이다.
  • 어느 변경이 끝난 시점에서도 참가자의 출발 지점은 서로 다르다.
  • 입력되는 값은 모두 정수이다.

서브태스크

  1. (1010 점) T=1T = 1, Si2S_{i} \le 2 (1iN1 \le i \le N), Yj2Y_{j} \le 2 (1jQ1 \le j \le Q).
  2. (88 점) N2000N \le 2\,000, Q=1Q = 1.
  3. (1111 점) N2000N \le 2\,000, Q2000Q \le 2\,000.
  4. (2727 점) Q=1Q = 1.
  5. (3434 점) N+Q78000N + Q \le 78\,000.
  6. (1010 점) 추가 제약이 없다.

입력

입력은 다음 형식으로 주어진다.
NN LL TT
A1A_{1} A2A_{2} \dots ANA_{N}
S1S_{1} S2S_{2} \dots SNS_{N}
QQ
X1X_{1} Y1Y_{1}
X2X_{2} Y2Y_{2}
::
XQX_{Q} YQY_{Q}

출력

QQ 개의 줄에 출력한다. jj 번째 줄 (1jQ1 \le j \le Q) 에는 jj 번째 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중에 일어나는 충돌의 횟수를 10000000071\,000\,000\,007 로 나눈 나머지를 출력한다.

예제 입력 1

3 7 2
1 6 3
4 1 6
1
4 2

예제 출력 1

7

11 번째 변경이 끝난 시점의 참가자는 44 명이다. 각각의 참가자에 대한 정보는 다음과 같다.

  1. 번호표 11 을 착용하고, 지점 11 에서 출발한다. 11 초당 44 의 속도로 시계 방향으로 이동한다.
  2. 번호표 66 을 착용하고, 지점 66 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  3. 번호표 33 을 착용하고, 지점 33 에서 출발한다. 11 초당 66 의 속도로 시계 방향으로 이동한다.
  4. 번호표 44 를 착용하고, 지점 44 에서 출발한다. 11 초당 22 의 속도로 시계 방향으로 이동한다.

11 번째 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중의 충돌은 다음 77 번이 된다.

  1. 시각 1÷41 \div 4 에, 번호표 33 을 착용한 참가자와 번호표 44 를 착용한 참가자가 같은 지점 9÷29 \div 2 에 있다.
  2. 시각 3÷53 \div 5 에, 번호표 33 을 착용한 참가자와 번호표 66 을 착용한 참가자가 같은 지점 33÷533 \div 5 에 있다.
  3. 시각 3÷23 \div 2 에, 번호표 11 을 착용한 참가자와 번호표 44 를 착용한 참가자가 같은 지점 00 에 있다.
  4. 시각 5÷35 \div 3 에, 번호표 11 을 착용한 참가자와 번호표 66 을 착용한 참가자가 같은 지점 2÷32 \div 3 에 있다.
  5. 시각 22 에, 번호표 33 을 착용한 참가자와 번호표 44 를 착용한 참가자가 같은 지점 11 에 있다.
  6. 시각 22 에, 번호표 33 을 착용한 참가자와 번호표 66 을 착용한 참가자가 같은 지점 11 에 있다.
  7. 시각 22 에, 번호표 44 를 착용한 참가자와 번호표 66 을 착용한 참가자가 같은 지점 11 에 있다.

이 예제는 서브태스크 2,3,4,5,62,3,4,5,6 의 제약을 만족한다.

예제 입력 2

3 6 1
1 3 4
1 1 1
2
0 2
1 1

예제 출력 2

1
0

11 번째 변경이 끝난 시점의 참가자는 44 명이다. 각각의 참가자에 대한 정보는 다음과 같다.

  1. 번호표 11 을 착용하고, 지점 11 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  2. 번호표 33 을 착용하고, 지점 33 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  3. 번호표 44 를 착용하고, 지점 44 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  4. 번호표 00 을 착용하고, 지점 00 에서 출발한다. 11 초당 22 의 속도로 시계 방향으로 이동한다.

11 번째 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중의 충돌은 다음 11 번이 된다.

  1. 시각 11 에, 번호표 00 을 착용한 참가자와 번호표 11 을 착용한 참가자가 같은 지점 22 에 있다.

22 번째 변경이 끝난 시점의 참가자는 33 명이다. 각각의 참가자에 대한 정보는 다음과 같다.

  1. 번호표 33 을 착용하고, 지점 33 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  2. 번호표 44 를 착용하고, 지점 44 에서 출발한다. 11 초당 11 의 속도로 시계 방향으로 이동한다.
  3. 번호표 00 을 착용하고, 지점 00 에서 출발한다. 11 초당 22 의 속도로 시계 방향으로 이동한다.

22 번째 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중의 충돌은 00 번이 된다.

이 예제는 서브태스크 1,3,5,61,3,5,6 의 제약을 만족한다.

예제 입력 3

2 100000 993754689
58683 3478
28489 48682814
1
28482 39599461

예제 출력 3

9265409

11 번째 변경이 끝난 시점의 참가자는 33 명이다. 각각의 참가자에 대한 정보는 다음과 같다.

  1. 번호표 5868358\,683 을 착용하고, 지점 5868358\,683 에서 출발한다. 11 초당 2848928\,489 의 속도로 시계 방향으로 이동한다.
  2. 번호표 34783\,478 을 착용하고, 지점 34783\,478 에서 출발한다. 11 초당 4868281448\,682\,814 의 속도로 시계 방향으로 이동한다.
  3. 번호표 2848228\,482 를 착용하고, 지점 2848228\,482 에서 출발한다. 11 초당 3959946139\,599\,461 의 속도로 시계 방향으로 이동한다.

11 번째 변경이 끝난 시점의 참가자에 대하여, 마라톤 대회 중의 충돌은 967009272178967\,009\,272\,178 번이 된다. 따라서 마라톤 대회 중에 일어나는 충돌의 횟수를 10000000071\,000\,000\,007 로 나눈 나머지는 92654099\,265\,409 가 된다.

이 예제는 서브태스크 2,3,4,5,62,3,4,5,6 의 제약을 만족한다.

예제 입력 4

7 100 100
34 12 46 23 57 63 99
12 34 23 12 34 12 23
5
67 34
99 23
33 34
99 12
23 12

예제 출력 4

330
264
341
440
341

이 예제는 서브태스크 3,5,63,5,6 의 제약을 만족한다.

코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람

아직 맞은 사람이 없습니다.

난이도 투표
Platinum III1명 투표· 약 22시간 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출

제출 내역이 없습니다.