No.943 取り調べ
タグ : / 解いたユーザー数 129
作問者 :
注意
Python使いの方はPyPyで提出することをお勧めします。
(Python素人のwriterが書いたコードでは最悪ケースで Python 4630ms, PyPy 240ms)
問題文
あなたは冷酷無比なベテラン刑事です。
集団詐欺グループのアジトをついに突き止めたあなたは、アジトへの突入作戦を実行し、
見事詐欺グループの全メンバー
捕らえられたメンバーは1人1部屋ずつ、合計
全メンバーを自白させることです。
事前に行われた捜査から、詐欺グループの各メンバーはそれぞれ頼りにしているメンバーが何人か(0人以上)いる
ことがわかっています。頼りにしているメンバーが全員自白したと知った(もしくは最初から誰も頼りにしていなかった)
とき、そのメンバーは心の拠り所を失い、自分の犯した過ちを全て自白することでしょう。
前述の通り、各メンバーは1人ずつ別々の取調室に入れられています。つまり、他のメンバーが自白したかどうか
はあなたを通してしか知ることが出来ません。これは何を意味するでしょうか?
あなたはメンバーに対して嘘をつくことが出来ます。具体的には、メンバー
とハッタリをかけることが出来ます。いくら冷酷無比なあなたでも、
若干の申し訳なさを感じてしまいます。しかし、慣れというのは恐ろしいもので、一度
しまえば、あとは何回同じ嘘をついても申し訳なさを全く感じません(冷酷無比なので)。
詐欺グループの各メンバーが頼りにしているメンバーのリスト
嘘を初めてついたときに感じてしまう申し訳なさ
を得ない申し訳なさの総和の最小値を求めてください。
「メンバーが自白した」という*事実*を伝える行為に対しては申し訳なさを感じないことに注意してください
(わからなければサンプルの説明を見てください)。
入力
入力は全て整数で与えられる。
(1ならばメンバー はメンバー を頼りにしている、0ならば頼りにしていない)
出力
全メンバーを自白させるために感じざるを得ない申し訳なさの総和の最小値を出力してください。最後に改行してください。
サンプル
サンプル1
入力
3 0 1 1 1 0 0 1 0 0 5 3 3
出力
5
メンバーを順に
まず、
次に、
申し訳なさを感じません。
最後に、
申し訳なさ5で全メンバーを自白させることができました。申し訳なさ5未満で全メンバーを自白
させることはできないので、5を出力します。
サンプル2
入力
3 0 1 1 1 0 0 1 0 0 10 1 1
出力
2
メンバーを順に
まず、
次に、
申し訳なさ2で全メンバーを自白させることができました。申し訳なさ2未満で全メンバーを自白
させることはできないので、2を出力します。
サンプル3
入力
3 0 1 1 1 0 1 1 1 0 1 2 4
出力
3
メンバーを順に
まず、
次に、
申し訳なさ3で全メンバーを自白させることができました。申し訳なさ3未満で全メンバーを自白
させることはできないので、3を出力します。
サンプル4
入力
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10 10
出力
0
全員が誰も頼りにしていないので、最初から全員が自白します。申し訳なさは0で済みます。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。