RNG
시간 제한1초메모리 제한128 MB
y와 a, b, c, n이 주어질 때 a x^2 + b x + c ≡ y (mod 2^n)을 만족하는 x를 [0, 2^n)에서 모두 구하고, 해가 정확히 하나일 때만 그 값을 출력한다.
문제
현수는 해적과 원숭이가 등장하는 새 어드벤처 게임을 만들고 있다. 이 게임은 여러 무작위 요소를 위해 난수 생성기(RNG, Random Number Generator)를 사용한다.
직전 난수를 라 할 때, RNG는 다음 난수 를 아래 식으로 만든다.
여기서 , , , 은 정수이다.
게임을 디버깅하던 현수는 디버그 콘솔에서 현재 난수 하나()를 확인했다. 이제 바로 직전에 생성되었던 난수 를 거꾸로 알아내려 한다.
현재 난수 와 상수 , , , 이 주어질 때, 위 식을 만족하는 직전 난수 ()를 구하라. 조건을 만족하는 가 정확히 하나면 그 값을 출력하고, 존재하지 않거나 둘 이상이면 No unique solution을 출력한다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스는 한 줄로 이루어지며, 다섯 정수 , , , , 이 공백으로 구분되어 주어진다. (, )
출력
각 테스트 케이스마다 조건을 만족하는 직전 난수 를 한 줄에 하나씩 출력한다.
조건을 만족하는 가 유일하지 않으면(존재하지 않거나 둘 이상이면) No unique solution을 출력한다.