냉장고 자물쇠
시간 제한1초메모리 제한128 MB
각각 3개에서 49개의 양의 정수를 표시한 K개의 고리와 K개의 일차방정식이 주어질 때, 모든 방정식을 만족하도록 고리마다 수를 하나씩 골라 출력한다.
문제
한 열쇠 수리공이 냉장고 문에 달린 화면에 표시된 특이한 자물쇠를 열어 달라는 부탁을 받았다.
이 자물쇠는 개의 동심원(고리)으로 이루어져 있다. 각 고리에는 양의 정수 여러 개가 표시되어 있다. 각 고리에서 정확히 하나씩 수를 골라, 고른 개의 수가 개의 단서를 모두 만족시키면 문이 열린다.
고리를 바깥쪽부터 , 안쪽으로 갈수록 로 번호를 매기고, 는 고리 에서 고른 수도 함께 나타낸다고 하자. 각 단서는 이 고른 값들에 대한 일차방정식이다.
각 단서는 이미 정수 계수 와 우변 로 분해되어 주어지며, 바깥 고리부터 안쪽 고리 순서로 나열된다. 예를 들어 (고리가 3개일 때) "바깥 고리에서 가운데 고리의 두 배를 뺀 값이 이다"라는 단서는 계수 줄 1 -2 0 = 0으로 표현된다.
계수는 음수, , 양수 모두 될 수 있다. 단서들은 언제나 자물쇠를 여는 선택을 정확히 하나로 확정한다.
고리들과 단서들을 읽어, 자물쇠를 여는 유일한 선택을 바깥 고리부터 안쪽 고리 순서로 출력하여라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 다음과 같이 주어진다.
- 고리의 개수(이자 단서의 개수)인 정수 가 한 줄에 주어진다. 이때 이다.
- 이어서 줄에 걸쳐, 바깥 고리부터 안쪽 고리까지 각 고리에 표시된 수들이 한 줄에 하나의 고리씩 공백으로 구분되어 주어진다. 한 고리에는 개 이상 개 이하의 수가 표시되며, 고리마다 개수가 다를 수 있다.
- 이어서 줄에 걸쳐 단서가 한 줄에 하나씩 주어진다. 각 단서 줄은 개의 정수 계수, 그다음 토큰
=, 그다음 정수 우변으로 이루어진다:c_1 c_2 ... c_K = b.
고리에 표시되는 각 수는 이상 이하이다. 한 줄에 0 하나만 있으면 입력의 끝을 뜻하며 처리하지 않는다.
출력
각 테스트 케이스마다, 고른 수들을 바깥 고리부터 안쪽 고리 순서로 공백 하나로 구분하여 한 줄에 출력한다.