パソコン甲子園本戦6「ダジャレ」

問題

テレビ局channel2の番組では今年も「D-1ダジャレグランプリ2011(通称D-1)」という番組を放映することになりました。応募のあったダジャレをスタジオの三人の審査員が審査する毎年恒例の番組です。高評価を得ると一躍有名になれるということもあって、年々応募者が増えています。
そのD-1で、不正な審査が行われたとの告発がありました。D-1では、審査の公平性を保つために誰がどのダジャレを応募したか審査員には分からないようになっています。ところが、ある審査員が友人を有名にするため、友人が作ったダジャレに無条件に高評価を与えたというのです。幸い番組は収録だけ行われまだ放送されていません。放送前に不正を見つけ、事態を穏便に収拾することになりました。
不正な審査を行った審査員を割り出したいところですが、利用できる情報は各ダジャレに対する審査員の評価の記録だけです。これでは完全な特定は難しいため、不正な審査を行った可能性が一番高い審査員を割り出すことにしました。

審査員とダジャレの情報は以下のとおりです。

  1. 各ダジャレは「面白いダジャレ」「つまらないダジャレ」「微妙なダジャレ」の三種類のどれかに属します。
  2. 三人の審査員はそれぞれ「正直な審査員」「へそ曲がりな審査員」「笑いの敷居の低い審査員」です。
  3. 三人の審査員は各ダジャレを「面白い」か「つまらない」のいずれかで評価します。評価の基準は以下のとおりです。
    1. 正直な審査員は面白いダジャレは面白い、つまらないダジャレはつまらないと評価し、微妙なダジャレはその時の気分で評価します。
    2. へそ曲がりな審査員は面白いダジャレはつまらない、つまらないダジャレは面白いと評価し、微妙なダジャレはその時の気分で評価します。
    3. 笑いの敷居の低い審査員は面白いダジャレは面白い、微妙なダジャレは面白いと評価し、つまらないダジャレはその時の気分で評価します。

不正の判断は以下の基準で行います。

  1. 不正な審査とは、上記の条件に従うとつまらないと評価されるはずのダジャレを面白いと評価することを指します。
  2. 不正な審査を行った審査員は一人だけで、不正な審査が行われたダジャレも1つだけです。
  3. 不正な審査を行った可能性のある審査員が複数いる場合は、不正を行ったと想定される事象の数が一番多い審査員を不正な審査を行った可能性が一番高い審査員とします。

ダジャレの数n、各審査員の各ダジャレに対する評価jのリストを入力とし、不正な審査を行った可能性が最も高い審査員の番号を出力するプログラムを作成してください。出力は、「正直な審査員」の場合は1、「へそ曲がりな審査員」の場合は2、「笑いの敷居の低い審査員」の場合は3を出力します。ただし、nは2以上100以下の整数です。評価jは、「おもしろい」はf、「つまらない」はbで表されます。また、不正な審査を行った審査員として一番高い可能性を持つ審査員が複数存在する場合、最も番号が小さい審査員を出力してください。

入力

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。各データセットは以下のとおりです。

1行目 ダジャレの数n(整数)
2行目 正直な審査員の各ダジャレに対する評価j1 j2 … jn(すべて半角文字;半角空白区切り)
3行目 へそ曲がりな審査員の各ダジャレに対する評価
4行目 笑いの敷居の低い審査員の各ダジャレに対する評価

出力

入力データセットごとに、不正な審査を行った審査員として一番高い可能性をもつ審査員の番号を出力します。

入力例

2
f f
b f
f f
2
f b
f f
f f
3
b b f
b b f
f f b
0

出力例

1
2
1

コメント

この問題の存在自体が「ダジャレ」だと思う
japljさんのコメント:Twitter. It's what's happening.