도시

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

문제

강을 따라 nn개의 도시가 늘어서 있습니다. 인접한 두 도시 사이에는 도로가 하나씩 놓여 있지만, 모든 도로가 양방향인 것은 아니어서 어떤 도시에서 다른 모든 도시로 갈 수 있는 것은 아닙니다.

어떤 도로들이 놓여 있는지 주어질 때, 각 도시에서 출발하여 도달할 수 있는 다른 도시의 개수를 구하세요.

입력

첫째 줄에 도시의 수 nn (1n1061 \le n \le 10^6)이 주어집니다.

둘째 줄에는 n1n - 1개의 정수 d1,d2,,dn1d_1, d_2, \dots, d_{n-1} (0di20 \le d_i \le 2)이 주어집니다. did_iii번째 도시와 (i+1)(i+1)번째 도시 사이의 도로를 나타냅니다.

  • di=0d_i = 0이면 ii번째 도시에서 (i+1)(i+1)번째 도시로 가는 일방통행 도로입니다.
  • di=1d_i = 1이면 (i+1)(i+1)번째 도시에서 ii번째 도시로 가는 일방통행 도로입니다.
  • di=2d_i = 2이면 두 도시를 잇는 양방향 도로입니다.

출력

한 줄에 nn개의 정수 w1,w2,,wnw_1, w_2, \dots, w_n을 공백으로 구분하여 출력합니다. wiw_iii번째 도시에서 출발하여 도달할 수 있는 도시의 개수이며, 자기 자신은 세지 않습니다.