이진 문자열 복원
면접 대비시간 제한2초메모리 제한256 MB
인접한 네 가지 쌍 00, 01, 10, 11의 개수가 각각 주어질 때, 그 개수를 만족하는 길이 a+b+c+d+1의 이진 문자열 중 사전순으로 가장 작은 것을 출력하거나 불가능을 보고한다.
문제
0과 1로 이루어진 길이 의 문자열을 생각한다. 이 문자열에서 인접한 두 글자의 쌍은 모두 개이고, 각 쌍은 00, 01, 10, 11 중 하나다.
네 정수 , , , 가 주어진다. 인접한 쌍 중 00이 정확히 개, 01이 정확히 개, 10이 정확히 개, 11이 정확히 개인 문자열을 복원한다. 문자열의 길이는 항상 이다.
조건을 만족하는 문자열이 여러 개일 수 있으므로, 그중 사전순으로 가장 앞선 하나를 출력한다. 후보의 길이는 모두 같으니 첫 글자부터 차례로 비교하면 된다.
입력
첫째 줄에 테스트의 개수 ()가 주어진다.
이어지는 개의 줄에 각각 네 정수 , , , ()가 공백으로 구분되어 주어진다. 모든 테스트에서 이다.
출력
개의 줄을 출력한다. 각 테스트마다 조건을 만족하는 문자열 중 사전순으로 가장 앞선 것을 출력한다. 조건을 만족하는 문자열이 없으면 impossible을 출력한다.