선형 합동 수열의 출력값 복원

시간 제한2초메모리 제한128 MB

요약
숨겨진 선형congruential 생성기의 홀수 항들이 주어질 때 (a,b)를 복원해서 사전순으로 가장 작은 짝수 항 수열을 출력하는 문제입니다.
난이도

보통10점 중 6점

유형
수학, 정수론, 완전 탐색
정답자
아직 제출이 없습니다

문제

어떤 대회 운영자가 선형 합동 생성기(linear congruential generator)로 채점 데이터를 만든다. 먼저 00 이상 1000010000 이하의 정수 세 개 x1x_1, aa, bb를 고른다. 그다음 i=2,3,…,2Ti = 2, 3, \dots, 2T에 대해 다음 점화식으로 나머지 값을 만든다.

xi=(a⋅xi−1+b) mod 10001x_i = (a \cdot x_{i-1} + b) \bmod 10001

이렇게 만든 수열에서 홀수 번째 값 x1,x3,…,x2T−1x_1, x_3, \dots, x_{2T-1}은 입력 데이터로, 짝수 번째 값 x2,x4,…,x2Tx_2, x_4, \dots, x_{2T}는 출력 데이터로 쓴다.

입력 데이터, 즉 x1,x3,…,x2T−1x_1, x_3, \dots, x_{2T-1}이 주어진다. 주어진 모든 값과 모순되지 않는 (a,b)(a, b)가 존재하도록 하는 출력 데이터 x2,x4,…,x2Tx_2, x_4, \dots, x_{2T}를 복원하여라. 조건을 만족하는 (a,b)(a, b)가 여러 개일 수 있으므로, 그로부터 만들어지는 출력 수열 (x2,x4,…,x2T)(x_2, x_4, \dots, x_{2T})이 사전순으로 가장 작은 것을 출력한다.

입력

첫째 줄에 TT가 주어진다. (1≤T≤1001 \le T \le 100)

둘째 줄부터 TT개의 줄에 걸쳐, ii번째 줄에 x2i−1x_{2i-1}이 주어진다. (0≤x2i−1≤100000 \le x_{2i-1} \le 10000)

모든 입력은 위 과정으로 실제로 만들어진 데이터이므로, 조건을 만족하는 (a,b)(a, b)가 적어도 하나 존재함이 보장된다.

출력

TT개의 줄을 출력한다. ii번째 줄에는 x2ix_{2i}를 출력한다. 단, 전체 출력 수열 (x2,x4,…,x2T)(x_2, x_4, \dots, x_{2T})이 입력과 모순되지 않는 모든 수열 중 사전순으로 가장 작은 것이 되도록 해야 한다.

예제3

  1. 예제 1

    입력
    3
    17
    822
    3014
    
    예상 출력
    9727
    1918
    4110
    
  2. 예제 2

    입력
    1
    500
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3
    5
    5
    5
    
    예상 출력
    0
    0
    0