問題一覧 > 通常問題

No.241 出席番号(1)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 157
作問者 : nmnmnmnmnmnmnmnmnmnmnmnmnmnm
4 ProblemId : 642 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-07-18 21:56:41

問題文

N人の生徒がいるクラスがあります。生徒はS0君からSN1君までいます。
それぞれの生徒に0からN1までの出席番号を割り振りたいです。
しかし、それぞれの生徒には嫌いな数が1つあり出席番号にしたくありません。
どの生徒にも嫌いな数が当たらないように出席番号を割り振りなさい。

※test2.txt はコーナーケースかもしれません。ACしない場合は制約をよく読みましょう。

入力

N
A0
A1

AN1

生徒の数Nが最初の行で与えられる。1N50
以降の行でSi君の嫌いな数AiN行で与えられる。0Ai49

出力

S0君からSN1君の出席番号を順にN行で出力せよ。
出席番号は重複しませんので0からN1までの数字が1つずつ存在すること。
正解は複数存在しますのでそのうちの1つを出力してください。
出席番号を割り振ることが不可能な場合には1行で-1を出力せよ。
最後に改行してください。

サンプル

サンプル1
入力
3
0
1
2
出力
2
0
1

S0君は0が嫌いです。
S1君は1が嫌いです。
S2君は2が嫌いです。
なので、S0君には2を、S1君には0を、S2君には1を割り振りました。

サンプル2
入力
4
3
3
3
3
出力
-1

出席番号3を誰にも割り振ることができません。
よって、出席番号の割り振りは不可能です。

サンプル3
入力
5
1
1
1
0
1
出力
4
2
0
1
3

S3君には必ず出席番号1を割り振らないといけないですね。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。