#joi2021yo2e. [joi2021_yo2_e]スパイ 2 (Spy 2)
[joi2021_yo2_e]スパイ 2 (Spy 2)
問題文
JOI 国には 人の議員がおり, から までの番号がつけられている.JOI 国の大臣であるあなたは,議員の中にいるスパイを探し出そうとしている.あなたは各議員 () について次のような情報を得た.
- のとき,議員 はスパイである.
- のとき,議員 はスパイではない.
- のとき,議員 がスパイであるかどうかは不明である.
更に聞き取り調査を行った結果,新たに 個の情報を得ることができた. 番目の聞き取り調査の情報 () は,議員 () が「議員 () はスパイであり,かつ議員 () はスパイでない」と証言したというものである.
ただし,議員 がスパイであれば, 番目の聞き取り調査の情報における証言は事実とは異なる.すなわち,もし議員 がスパイであれば,「議員 はスパイである」「議員 はスパイでない」のうち,少なくとも一方は事実ではない.一方で,議員 がスパイでないとき, 番目の聞き取り調査の情報における証言は事実かもしれないし,そうでないかもしれない.
各議員の情報と,聞き取り調査の結果が与えられるので,それら 個の情報が矛盾しているかを判定し,矛盾していないなら,それぞれの議員がスパイかどうかを求めるプログラムを作成せよ. 個の情報と合致する答えが複数存在する場合は,そのうちどれを出力してもよい.
制約
- .
- .
- ().
- ().
- ().
- ().
- ().
- ().
- ().
小課題
- ( 点) ,.
- ( 点) ,.
- ( 点) 追加の制約はない.
入力
入力は以下の形式で標準入力から与えられる.
出力
標準出力に出力せよ.
与えられた情報が矛盾している場合,-1
を 行で出力せよ.
そうでない場合,出力は 行からなる. 行目 () には議員 がスパイである場合 を,議員 がスパイでない場合 を出力せよ. 個の情報と合致する答えが複数存在する場合,そのうちどれを出力してもよい.
入力例 1
4 1
1 3 2 3
1 2 3
出力例 1
1
2
2
1
出力例 において議員 はスパイであり,「議員 はスパイであり,かつ議員 はスパイでない」という証言は議員 がスパイでないため事実と異なる.したがって,出力例 は与えられた情報に合致しており,正解となる.
この他に,議員 のみがスパイであり,他の議員はスパイではない,という答えも正解となる.
入力例 2
4 2
2 1 3 1
4 3 1
2 4 3
出力例 2
-1
議員 がスパイであるとすると, 番目の聞き取り調査の情報と合致しない.議員 がスパイでないとすると, 番目の聞き取り調査の情報と合致しない.情報が矛盾しているため,-1
を出力する.
入力例 3
3 2
1 2 2
2 1 3
2 3 1
出力例 3
1
2
2
入力例 において,すべての議員はスパイかそうでないかの情報が与えられている.これらは聞き取り調査の情報とも合致しているため,出力例 が唯一の正解となる.スパイでない議員の証言は,事実であるかもしれないし,そうでないかもしれないことに注意せよ.