가계부 들여쓰기 복원

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

문제

Juku는 자신의 지출을 아래와 같은 형식의 텍스트 파일에 정리한다. 계층이 항상 3단계로 되어 있는 것은 아니다.

3월 지출 - 1000
   식비 - 500
      치즈 스낵 - 250
      고기 - 250
   여가 - 400
      파티 - 200
      영화 - 200
   건강 - 100

그런데 파일을 다시 저장하는 과정에서 텍스트 편집기가 어떤 이유로 모든 들여쓰기를 잃어버렸고, 이제 파일은 다음과 같이 보인다.

3월 지출 - 1000
식비 - 500
치즈 스낵 - 250
고기 - 250
여가 - 400
파티 - 200
영화 - 200
건강 - 100

파일의 첫 번째 줄이 모든 지출의 합계라는 사실이 주어질 때, Juku가 원래의 계층 구조를 복원하도록 돕는 프로그램을 작성하라.

정확히 말하면, 각 줄의 금액은 그 줄 바로 아래 한 단계에 속한 항목(직속 자식)들의 금액 합과 같다. 금액들은 파일에 적힌 순서(계층의 전위 순회 순서)대로 주어지며, 각 줄의 들여쓰기 깊이를 복원해야 한다.

입력

첫 번째 줄에 줄의 개수 $N$ ($1 \le N \le 20$)이 주어진다. 이어지는 $N$개의 줄에는 각 줄마다 하나의 금액 $A_i$ ($1 \le A_i \le 10^9$)가 파일 순서대로 주어진다.

출력

정확히 $N$개의 줄을 출력한다. $i$번째 줄에는 입력의 $i$번째 금액이 갖는 들여쓰기 깊이를 출력한다(깊이는 0부터 센다). 첫 번째 줄의 깊이는 항상 $0$이고, $N \ge 2$이면 두 번째 줄의 깊이는 항상 $1$이다.

깊이 배열이 유효하다는 것은, 첫 번째 줄을 루트로 하는 하나의 계층 트리를 이루면서, 하위 항목으로 나뉘는 모든 줄에 대해 그 직속 자식들의 금액 합이 해당 줄의 금액과 정확히 같다는 뜻이다.

유효한 들여쓰기가 여러 개일 수 있으므로, 유효한 깊이 수열 $d_1, d_2, \dots, d_N$ 중에서 사전순으로 가장 작은 것을 출력한다(두 수열을 앞에서부터 원소 단위로 비교하여, 처음으로 값이 다른 위치에서 더 작은 쪽을 택한다).