Report(報告) - joi2011-day3
時間制限: 0.5秒
メモリ制限: 64MB
情報オリンピック日本委員会は報告・連絡・相談が非常に徹底された組織である.委員会には N 人が所属し,すべての人に対しその報告を受ける人 (「報告先」と呼ぶ) が 1 人ずつ定まっている.
今,情報オリンピック日本委員会の中で,あるプロジェクトを立ち上げることとなった.このプロジェクトは,仕事 1, 仕事 2, …, 仕事 N という N 個の仕事に分けられており,N 人には一つずつ異なる担当が割り当てられている.N 個の仕事は仕事 1 から仕事 N まで番号順に処理される.ある仕事の担当者がその仕事を終えたとき,その人は自分の「報告先」に対して「作業報告」を行う.「作業報告」を受けた人は,それと同一の「作業報告」を自分の「報告先」に対して行う.ただし,同じ「作業報告」を既に自分の「報告先」にしたことがある場合は,同じ仕事に対する「作業報告」を再びすることはない.これが繰り返されることで, 委員会中の何人かが「作業報告」を受けることとなる.次の仕事は,前の仕事の「作業報告」が全て行われてから処理される.
課題
入力として各仕事の担当者の「報告先」が与えられたとき,それぞれの人が自分の仕事に取りかかる段階において,受けた「作業報告」の種類の数を出力するプログラムを作成せよ.
制限
2 \leq N \leq 100\,000 | 委員会に所属する人数 |
入力
標準入力から以下の入力を読み込め.
- 1 行目には整数 N が書かれており,これは委員会に所属する人数を表す.
- 続く N 行には各担当者の報告先が書かれている.i+1 行目 (1 \leq i \leq N) には 1 つの整数 A_i (1 \leq A_i \leq N,A_i \neq i) が書かれている. これは,仕事 i の担当者の「報告先」が仕事 A_i の担当者であることを示す.
出力
出力は N 行からなる. i 行目 (1 \leq i \leq N) に,仕事 i の担当者が仕事に取りかかる段階において,受けた「作業報告」の種類の数を表す 1 つの整数を出力せよ.
採点基準
- 採点用データのうち,配点の 10% 分については,N \leq 1\,000 を満たす.
入出力の例
入力例 | 出力例 |
---|---|
6 3 4 2 6 3 2 |
0 1 1 3 0 5 |
この入力例では,以下のようになる.
- 仕事 1 の担当者が仕事 1 に取りかかる.この時点までに仕事 1 の担当者が受けた作業報告は 0 種類
である. - 仕事 1 の作業報告を仕事 1 の担当者が仕事 3 の担当者に行う.
- 仕事 1 の作業報告を仕事 3 の担当者が仕事 2 の担当者に行う.
- 仕事 1 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 1 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.
- 仕事 1 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 2 の担当者が仕事 2 に取りかかる.この時点までに仕事 2 の担当者が受けた作業報告は 1 種類
である (仕事 1). - 仕事 2 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 2 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.
- 仕事 2 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 3 の担当者が仕事 3 に取りかかる.この時点までに仕事 3 の担当者が受けた作業報告は 1 種類
である (仕事 1). - 仕事 3 の作業報告を仕事 3 の担当者が仕事 2 の担当者に行う.
- 仕事 3 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 3 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.
- 仕事 3 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 4 の担当者が仕事 4 に取りかかる.この時点までに仕事 4 の担当者が受けた作業報告は 3 種類
である (仕事 1, 2, 3). - 仕事 4 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.
- 仕事 4 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 4 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 5 の担当者が仕事 5 に取りかかる.この時点までに仕事 5 の担当者が受けた作業報告は 0 種類
である. - 仕事 5 の作業報告を仕事 5 の担当者が仕事 3 の担当者に行う.
- 仕事 5 の作業報告を仕事 3 の担当者が仕事 2 の担当者に行う.
- 仕事 5 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 5 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.
- 仕事 5 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 6 の担当者が仕事 6 に取りかかる.この時点までに仕事 6 の担当者が受けた作業報告は 5 種類
である (仕事 1, 2, 3, 4, 5). - 仕事 6 の作業報告を仕事 6 の担当者が仕事 2 の担当者に行う.
- 仕事 6 の作業報告を仕事 2 の担当者が仕事 4 の担当者に行う.
- 仕事 6 の作業報告を仕事 4 の担当者が仕事 6 の担当者に行う.