시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB54915112834.688%

문제

다음과 같이 어떤 책의 목차가 있다.

- Heading 1
  - SubHeading 1-1
    - SubHeading 1-1-1
    - SubHeading 1-1-2
- Heading 2
  - SubHeading 2-1
  - SubHeading 2-2
- Heading 3

목차는 여러 제목으로 이루어져 있다. 또한, 제목은 여러 개의 하위 제목을 가질 수 있다. 하위 제목 또한 자기 자신의 하위 제목을 가질 수 있다. 이러한 관계를 목차에 나타내기 위해, 제목 앞의 들여쓰기를 이용해 먼저 제목의 레벨을 구분한다. 공백이 없으면 $1$레벨, 공백이 $2$칸 있으면 $2$레벨, $4$칸 있으면 $3$레벨과 같은 식이다. 즉, 제목의 레벨이 $l$이라면 공백의 수 $s$는 $s = 2 \times (l - 1)$이다.

목차에 나타낸 제목들은 다음과 같은 관계를 갖는다.

  • 레벨이 $l$인 제목은 레벨이 $(l - 1)$인 자기보다 위에 있는 제목 중 가장 아래에 있는 제목이 자신의 상위 제목이다. ($l > 1$) 또한 해당 상위 제목은 이 제목을 하위 제목으로 갖는다.
  • 레벨이 $l$인 제목과 그 제목의 상위 제목 사이에는 레벨이 $(l - 1)$보다 작은 제목이 있어서는 안 된다.
  • $1$레벨 제목은 자신의 상위 제목이 없다.
  • $2$레벨 이상의 제목은 반드시 자신의 상위 제목이 있어야 한다.

위 예시에서 Heading1의 하위 제목은 $1$개, SubHeading 1-1의 하위 제목은 $2$개가 있다. 간략히 이 예시에서 각 제목의 레벨과 하위 제목의 개수를 구하면 아래와 같다.

- Heading 1 (1레벨, 1개)
  - SubHeading 1-1 (2레벨, 2개)
    - SubHeading 1-1-1 (3레벨, 0개)
    - SubHeading 1-1-2 (3레벨, 0개)
- Heading 2 (1레벨, 2개)
  - SubHeading 2-1 (2레벨, 0개)
  - SubHeading 2-2 (2레벨, 0개)
- Heading 3 (1레벨, 0개)

목차가 주어졌을 때, 각 제목의 하위 제목이 몇 개인지 각각 세어 출력하시오. 편의를 위해, 입력으로는 각 목차의 레벨만이 위에서부터 순서대로 주어진다.

입력

첫째 줄에 목차가 가지고 있는 제목의 수 $N$이 주어진다. ($1 \le N \le 1\,000\,000$)

둘째 줄부터 순서대로 제목의 레벨 $l$이 주어진다. ($1 \le l \le N$)

출력

주어진 목차가 올바르면 $N$개의 줄에 걸쳐 각 제목의 하위 제목의 수를 한 줄에 하나씩 출력하시오.

주어진 목차가 올바르지 않으면 $-1$만을 출력하시오.

예제 입력 1

8
1
2
3
3
1
2
2
1

예제 출력 1

1
2
0
0
2
0
0
0

예제 입력 2

4
1
2
1
3

예제 출력 2

-1

출처

University > 아주대학교 > 2022 아주대학교 프로그래밍 경시대회 APC B번