시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 28 6 6 46.154%

문제

현수는 새로운 게임을 만들고 있다. 이 게임은 어드벤쳐 게임으로 해적과 원숭이가 등장한다. 게임을 해본 사람들의 말에 의하면 엄청나게 재밌다고 한다.

이 게임은 다양한 랜덤 요소를 포함하고 있다. 따라서, 현수는 랜덤 함수 생성기를 이용하려고 한다. 랜덤 함수 생성기는 줄여서 RNG라고 쓴다.

각 RNG는 다음과 같은 식을 사용한다. x가 이전 랜덤 숫자 일때, y는 아래 식으로 구할 수 있다.

y = ax2 + bx + c (mod 2n)

a, b, c, n은 정수이다.

현수는 게임을 테스트 하기 위하고 있다. 현수는 게임을 중단시키고 디버그 콘솔을 볼 수 있다. 디버그 콘솔에는 현재 생성된 랜덤 숫자 하나가 나타나 있다. 하지만, 현수는 프로그램을 역추적해 그 전의 랜덤 숫자를 알아내려고 한다.

현재 랜덤 숫자(y)의 값과 a, b, c, n이 주어졌을 때, 이전 랜덤 숫자(x)를 구하는 프로그램을 작성하시오.

입력

입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 다음과 같은 형식이다.

  • 첫째 줄에 다섯개의 정수 y, a, b, c, n이 주어진다. (0 ≤ y, a, b, c < 2n, 1 ≤ n ≤ 31)

출력

각 테스트 케이스에 대해서, 이전 랜덤 숫자 x를 출력한다. (0 ≤ x < 2n) 만약, 가능한 x가 없거나, 두 개 이상 존재한다면 "No unique solution"을 출력한다.

예제 입력

4
26 2 1 5 5
10 1 0 0 4
1 1 1 1 4
3 14 15 92 7

예제 출력

3
No unique solution
No unique solution
55

힌트