Median(중앙값)은 주어진 값들을 크기 순서대로 정렬 했을 때 가장 중앙에 위치하는 값입니다.
예를 들어 {2, 1, 5, 3, 4}의 Median은 3이 됩니다.( 길이가 짝수인 경우에는 두 값 중 보다 작은 것 ).
수열에서 수가 추가될 때마다 Median을 계산하는 프로그램을 작성하세요.
예를 들어 2, 1, 5, 3, 4 가 순서대로 입력된다고 했을 때 수열의 Median은 2, 1, 2, 2, 3 순서로 변화합니다.
입력 | 수열(오름차순) | 중앙값 |
2 | 2 | 2 |
2, 1 | 1, 2 | 1 |
2, 1, 5 | 1, 2, 5 | 2 |
2, 1, 5, 3 | 1, 2, 3, 5 | 2 |
2, 1, 5, 3, 4 | 1, 2, 3, 4, 5 | 3 |
* 입력의 크기가 크므로, 이 문제에서는 수열을 입력받는 대신 다음과 같은 식을 통해 프로그램 내에서 직접 생성합니다.
- A[0] = 1983
- A[ i ] = A[ i - 1] * (a + b) mod 20090711
입력
수열의 길이 N( 1 ≤ N ≤ 200,000 ), 그리고 수열을 생성하는데 필요한 두 정수 a, b ( 0 ≤ a ≤ b ≤ 10000)
출력
N개의 중간 값의 합을 20090711로 나눈 나머지를 출력