아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

예선 라운드 F번 문제

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

요약
양의 정수 a_i와 d가 주어질 때 합 a_i x_i = d를 만족하는 0이 아닌 x_i가 존재하는지 판정하고, 각 |D_i|를 최소로 만드는 규칙이 정한 유일한 수열을 출력한다.
난이도

어려움10점 중 8점

유형
정수론, 그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

땅요정 폴이 땅요정 수학 컵 예선 라운드에 나갔다. F번 문제는 다음과 같다.

양의 정수 nn개 a1,a2,…,ana_1, a_2, \ldots, a_n과 양의 정수 dd가 주어진다. 다음 식을 만족하면서 어느 것도 00이 아니고 ∣xi∣≤107|x_i| \le 10^7인 정수 x1,x2,…,xnx_1, x_2, \ldots, x_n을 구하라.

a1x1+a2x2+⋯+anxn=d.a_1 x_1 + a_2 x_2 + \cdots + a_n x_n = d.

땅요정은 큰 수를 싫어하므로 모든 aia_i와 dd는 10610^6 이하이고, 어떤 xix_i도 00이 될 수 없다.

식을 만족하는 수열은 여러 개일 수 있어서 정답으로 인정하는 수열은 하나로 정해져 있다. sn+1=0s_{n+1} = 0으로 두고 i=n,n−1,…,1i = n, n-1, \ldots, 1 순서로 si=gcd⁡(ai,si+1)s_i = \gcd(a_i, s_{i+1})을 정의한다. 즉 sis_i는 ai,ai+1,…,ana_i, a_{i+1}, \ldots, a_n의 최대공약수다. 구하는 수열이 존재할 필요충분조건은 s1s_1이 dd를 나누는 것이다. 존재하면 왼쪽부터 차례로 값을 정한다. D0=dD_0 = d로 두고 i=1,2,…,n−1i = 1, 2, \ldots, n-1에 대해 다음과 같이 xix_i를 고른다.

  1. xix_i는 00이 아니고, Di=Di−1−aixiD_i = D_{i-1} - a_i x_i는 00이 아닌 si+1s_{i+1}의 배수다.
  2. 그런 xix_i 중에서 ∣Di∣|D_i|가 가장 작아지는 것을 고른다.
  3. ∣Di∣|D_i|가 같은 후보가 둘이면 더 작은 xix_i를 고른다.

마지막 값은 xn=Dn−1/anx_n = D_{n-1} / a_n이다. n=1n = 1이면 고르는 과정 없이 x1=d/a1x_1 = d / a_1이다. 이 규칙이 만드는 값은 항상 ∣xi∣≤107|x_i| \le 10^7을 만족한다.

입력

첫째 줄에 테스트의 개수 tt가 주어진다 (1≤t≤1051 \le t \le 10^5). 이어서 각 테스트가 주어진다.

각 테스트의 첫째 줄에는 두 정수 nn과 dd가 주어진다 (1≤n≤1051 \le n \le 10^5, 1≤d≤1061 \le d \le 10^6). 둘째 줄에는 nn개의 정수 aia_i가 주어진다 (1≤ai≤1061 \le a_i \le 10^6). 모든 테스트의 nn을 더한 값은 10510^5을 넘지 않는다.

출력

각 테스트마다 답을 출력한다. 구하는 수열이 존재하면 한 줄에 YES를 출력하고, 다음 줄에 x1,x2,…,xnx_1, x_2, \ldots, x_n을 공백 하나로 구분해 출력한다. 위에서 정의한 수열만 정답으로 인정한다. 그런 수열이 없으면 그 테스트의 출력으로 NO만 출력한다.

예제3

  1. 예제 1

    입력
    2
    2 1
    2 3
    3 3
    2 3 1000
    
    예상 출력
    YES
    -1 1
    YES
    1 -333 1
    
  2. 예제 2

    입력
    4
    1 5
    5
    1 5
    2
    2 7
    4 6
    2 1000000
    1 1
    
    예상 출력
    YES
    1
    NO
    NO
    YES
    999999 1
    
  3. 예제 3

    입력
    2
    2 1
    999983 999979
    5 3
    16 8 4 2 1
    
    예상 출력
    YES
    249995 -249996
    YES
    1 -2 1 -1 1