이진 문자열 복원

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

0과 1로 이루어진 길이 nn의 문자열을 생각한다. 이 문자열에서 인접한 두 글자의 쌍은 모두 n1n - 1개이고, 각 쌍은 00, 01, 10, 11 중 하나다.

네 정수 aa, bb, cc, dd가 주어진다. 인접한 쌍 중 00이 정확히 aa개, 01이 정확히 bb개, 10이 정확히 cc개, 11이 정확히 dd개인 문자열을 복원한다. 문자열의 길이는 항상 n=a+b+c+d+1n = a + b + c + d + 1이다.

조건을 만족하는 문자열이 여러 개일 수 있으므로, 그중 사전순으로 가장 앞선 하나를 출력한다. 후보의 길이는 모두 같으니 첫 글자부터 차례로 비교하면 된다.

입력

첫째 줄에 테스트의 개수 tt (1t100001 \le t \le 10000)가 주어진다.

이어지는 tt개의 줄에 각각 네 정수 aa, bb, cc, dd (0a,b,c,d200 \le a, b, c, d \le 20)가 공백으로 구분되어 주어진다. 모든 테스트에서 a+b+c+d1a + b + c + d \ge 1이다.

출력

tt개의 줄을 출력한다. 각 테스트마다 조건을 만족하는 문자열 중 사전순으로 가장 앞선 것을 출력한다. 조건을 만족하는 문자열이 없으면 impossible을 출력한다.