용암 점프 2
시간 제한2초메모리 제한512 MB
각 플랫폼에서 출발해 직전 점프 거리의 두 배 이상으로만 뛰어 한 플랫폼만 남는 순서의 경우 수를 셉니다. 위치가 바뀔 때마다 그 값을 다시 구합니다.
문제
경기과학고등학교 학습실에는 때때로 용암이 찬다. 이 용암 바닥에는 1부터 까지 번호가 매겨진 개의 발판이 떠 있다. 번 발판의 위치는 정수 로 나타내며, 발판의 위치는 모두 서로 다르다. 즉, 인 정수 , 에 대해 이다. 용암 바닥은 밟을 수 없고 발판만 밟을 수 있다. 안타깝게도 한 번 밟은 발판은 발을 떼는 순간 용암 아래로 영원히 가라앉아, 다시 밟을 수 없다.
정후는 친구 이환이가 각 발판에서 출발해 0회 이상 점프하여, 마지막에 하나의 발판만 밟고 있고 나머지 발판은 모두 가라앉은 상태가 되는 경우의 수를 알고 싶어 한다. 다만 이환이는 과하게 뛴다. 한 번 거리 만큼 뛴 뒤에는 그 이후의 점프 거리가 이상이어야 한다. 처음에는 어느 거리로 뛰어도 상관없다.
번 발판에서 번 발판으로 뛰는 거리는 이다. 발판이 가라앉는 순서가 다르면 서로 다른 경우로 센다. 밟지 않은 발판은 가라앉지 않는다. 발판의 이동은 누적된다.
입력
첫째 줄에 발판의 수 과 쿼리의 개수 가 주어진다.
둘째 줄에 발판의 위치를 나타내는 개의 정수가 공백으로 구분되어 주어진다. 번째 정수는 번 발판의 위치 이다.
다음 개의 줄에는 두 정수 와 가 각각 주어진다. 이는 번 발판이 위치 로 이동함을 뜻한다.
출력
첫째 줄에 초기 상태에서, 이환이가 각 발판에서 출발해 0회 이상 점프하여 마지막에 하나의 발판만 밟고 있고 나머지 발판은 모두 가라앉은 상태가 되는 경우의 수의 합을 로 나눈 나머지를 출력한다.
다음 개의 줄에는 번째 이동 이후의 같은 경우의 수 합을 로 나눈 나머지를 한 줄에 하나씩 출력한다.
제한
- 초기 상태와 매 쿼리 이후 발판의 위치는 서로 다르다.
- 주어지는 모든 수는 정수이다.