この質問は、プールステージを終えたばかりの「紳士が演じるフーリガンのゲーム」であるラグビーワールドカップの進行中のトーナメントに触発されています。トーナメントには20のチームがあり、それぞれ5チームの4つのプールに分割されています。プールステージでは、各チームがプール内の他のすべてのチームと対戦し(プールごとに合計10試合)、各プールの上位2チームがノックアウトステージに進みます。
プールステージの最後には、各チームの勝ち、負け、引き分けの数を示す各プールのテーブルがあります。この質問の課題は、プール内の各チームの勝ち、負け、引き分けの数を入力するプログラムを作成し、その情報から10試合のそれぞれの結果(勝者、敗者、または引き分け者)可能であれば、そうでない場合はエラーメッセージを出力します。
たとえば、今年のトーナメントのプールDの表は次のとおりです。
Win Loss Draw
Canada 0 4 0
France 3 1 0
Ireland 4 0 0
Italy 2 2 0
Romania 1 3 0
この情報から、アイルランドがカナダ、フランス、イタリア、ルーマニアと勝ったのは、彼らがすべてのゲームで勝ったからだと推測できます。フランスはカナダ、イタリア、ルーマニアに勝ったが、アイルランドに負けたのは、彼らが負けたのはたった1つであり、敗北していないアイルランドだったに違いないからです。イタリアがアイルランドとフランスに敗れたため、カナダとルーマニアに勝ったに違いないことを突き止めました。カナダはすべての試合で負けたため、ルーマニアの勝利はカナダに負けたに違いありません。
Canada France Ireland Italy Romania
Canada - L L L L
France W - L W W
Ireland W W - W W
Italy W L L - W
Romania W L L L -
これは、より複雑な(架空の)例です。
Win Loss Draw
Canada 3 1 0
France 1 2 1
Ireland 0 3 1
Italy 0 2 2
Romania 4 0 0
この場合、ルーマニアがカナダ、フランス、イタリア、アイルランドに勝ったのは、彼らがすべてのゲームに勝ったからだと推測できます。カナダはアイルランド、イタリア、フランスに勝ったはずですが、ルーマニアに敗れました。イタリアがルーマニアとカナダに敗れたため、フランスとアイルランドに引き寄せられたに違いない。つまり、アイルランドはイタリアと一緒に引き分け、他のすべての人に負けたことを意味します。したがって、フランスはアイルランドを破り、イタリアと引き分けられ、カナダとルーマニアに負けたに違いありません。
Canada France Ireland Italy Romania
Canada - W W W L
France L - W D L
Ireland L L - D L
Italy L D D - L
Romania W W W W -
一部のテーブルは解決できません。たとえば、今年のプールBでは、3つのチームが同じW / L / D合計を獲得しました。
Win Loss Draw
Japan 3 1 0
Samoa 1 3 0
Scotland 3 1 0
South Africa 3 1 0
United States 0 4 0
ただし、次のような(架空の)重複した行を持ついくつかのテーブルは解決可能です。
Win Loss Draw
Japan 4 0 0
Samoa 0 3 1
Scotland 2 2 0
South Africa 0 3 1
United States 3 1 0
入力
プログラムまたは機能は、5つのチームのそれぞれの勝ち、負け、引き分けの合計を指定する15個の数字を受け入れる必要があります。必要な区切り文字を使用し、行または列の主要な順序で数値を入力し、stdinを介して、または配列を介して関数に渡された数値を受け入れることができます。
勝ち+負け+引き= 4であるため、必要に応じて値の1つを省略し、他の値から計算することができます。つまり、10個の数字を入力するだけです。
チーム名を入力する必要はありません。
サンプル入力:
3 1 0
1 2 1
0 3 1
0 2 2
4 0 0
出力
プログラムまたは関数の出力は、stdoutに出力される5 x 5グリッド、または関数から返される配列の形式である必要があります。各要素は、行の位置で与えられたチームが列の位置でチームに勝ったか、負けたか、引き分けたかを指定する必要があります。出力の行の順序は入力と一致する必要があります。勝ち、負け、引き分けを示すものを定義できるので、W、L、Dの文字、または数字の0 1 2または必要なものは、明確に定義され、互いに区別できる限り使用できます。対角要素は未定義であり、何でも出力できますが、それぞれの場合で同じである必要があります。値は、コンマ、スペース、または任意の文字で区切ることができますが、文字ではありません。必要に応じて、入力と出力の両方を単一行のすべての値でフォーマットできます。
テーブルに一意のソリューションがない場合は、選択した簡単なエラーメッセージを出力する必要があります。
サンプル出力:
- W W W L
L - W D L
L L - D L
L D D - L
W W W W -
解決できないテーブルのサンプル出力:
dunno mate
これはコードゴルフなので、バイト単位の最短プログラムが勝ちます。
写真関連(日本対南アフリカ):
