SRM361 Div1 250

問題

黒と白の帽子をかぶっている人がいる.全ての人が黒の帽子をかぶっている人の人数を数える.その数字の配列が与えられるとき,黒の帽子をかぶっている人の人数を返す.あり得ない場合は-1を返す.

考え方

配列は2つ以下の数字からなっていなければいけない.
もし全ての数字が1つの数字だけならば,それが0なら0,それがN-1ならすべての人が黒なので,Nを返す.それ以外は-1.
2つの数字で構成されている場合は,その2つの数字の大きい方が白い帽子の人のはずなので,小さい方の数字の数が大きい方の数字と等しい&&大きい方の数字==小さい方の数字+1であれば,大きい方の数字を返す.それ以外は-1.

反省

大きい方の数字と小さい方の数字はその差が最大1というのを入れ忘れた.{2,2,2,2,4,4}で落ちる.