Pertanyaan ini terinspirasi oleh turnamen berkelanjutan "permainan hooligan yang dimainkan oleh tuan-tuan", Piala Dunia Rugby , yang baru saja menyelesaikan babak penyisihan. Ada 20 tim di turnamen, dan mereka dibagi menjadi 4 kelompok masing-masing 5 tim. Selama tahap pool, setiap tim bermain melawan semua tim lain di pool mereka (total 10 pertandingan per pool), dan 2 tim teratas dari masing-masing pool maju ke babak sistem gugur.
Di akhir tahapan pool ada tabel untuk setiap pool yang menunjukkan jumlah kemenangan, kekalahan dan draw untuk masing-masing tim. Tantangan untuk pertanyaan ini adalah menulis sebuah program yang memasukkan jumlah kemenangan, kerugian, dan hasil imbang untuk masing-masing tim dalam kumpulan, dan dari informasi itu dihasilkan hasil masing-masing dari masing-masing dari 10 pertandingan (siapa yang menang, kalah atau seri melawan siapa ) jika mungkin atau mengeluarkan pesan kesalahan jika tidak.
Sebagai contoh, berikut adalah tabel untuk Pool D turnamen tahun ini:
Win Loss Draw
Canada 0 4 0
France 3 1 0
Ireland 4 0 0
Italy 2 2 0
Romania 1 3 0
Dari informasi ini, kita dapat menyimpulkan bahwa Irlandia menang melawan Kanada, Prancis, Italia dan Rumania, karena mereka memenangkan semua pertandingan mereka. Prancis pasti menang melawan Kanada, Italia, dan Rumania tetapi kalah dari Irlandia, karena mereka hanya kalah satu dan itu pasti ke Irlandia yang tak terkalahkan. Kami baru mengetahui bahwa Italia kalah dari Irlandia dan Prancis, jadi mereka pasti menang melawan Kanada dan Rumania. Kanada kehilangan semua pertandingan mereka, dan kemenangan Rumania pastilah melawan Kanada.
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 -
Berikut ini contoh (fiksi) yang lebih rumit:
Win Loss Draw
Canada 3 1 0
France 1 2 1
Ireland 0 3 1
Italy 0 2 2
Romania 4 0 0
Dalam hal ini, kita dapat menyimpulkan bahwa Rumania menang melawan Kanada, Prancis, Italia dan Irlandia, karena mereka memenangkan semua pertandingan mereka. Kanada pasti menang melawan Irlandia, Italia, dan Prancis tetapi kalah dari Rumania. Kami baru saja mengetahui bahwa Italia kalah dari Rumania dan Kanada, jadi mereka pasti imbang melawan Prancis dan Irlandia. Itu berarti Irlandia bermain imbang dengan Italia dan kalah dari yang lain, dan karena itu Prancis harus mengalahkan Irlandia, imbang dengan Italia dan kalah dari Kanada dan Rumania.
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 -
Beberapa tabel tidak dapat dipecahkan, misalnya Pool B tahun ini, di mana 3 tim mendapatkan total W / L / D yang sama:
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
Namun beberapa tabel dengan duplikat baris dapat dipecahkan, seperti yang ini (fiksi):
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
Memasukkan
Program atau fungsi Anda harus menerima 15 angka yang menetapkan total kemenangan, kekalahan, dan hasil imbang untuk masing-masing dari 5 tim. Anda dapat menggunakan pembatas yang Anda inginkan, memasukkan angka dalam urutan utama baris atau kolom, dan menerima angka baik melalui stdin atau diteruskan melalui array ke fungsi.
Karena menang + kalah + undian = 4, Anda dapat menghilangkan salah satu nilai dan menyelesaikannya dari yang lain jika diinginkan, artinya Anda hanya perlu memasukkan 10 angka.
Anda tidak perlu memasukkan nama tim apa pun.
Input sampel:
3 1 0
1 2 1
0 3 1
0 2 2
4 0 0
Keluaran
Output program atau fungsi Anda harus dalam bentuk grid 5 x 5 yang dicetak ke stdout, atau array yang dikembalikan dari suatu fungsi. Setiap elemen harus menentukan apakah tim yang diberikan di posisi baris menang, kalah atau seri melawan tim di posisi kolom. Urutan baris untuk output harus sesuai dengan input. Anda dapat menentukan apa yang menunjukkan menang, kalah atau seri, sehingga huruf W, L, D atau digit 0 1 2 atau apa pun yang Anda inginkan dapat digunakan selama keduanya didefinisikan dengan jelas dan dapat dibedakan satu sama lain. Elemen diagonal tidak terdefinisi, Anda dapat menampilkan apa saja, tetapi harus sama dalam setiap kasus. Nilai dapat dipisahkan dengan koma, spasi atau karakter apa pun yang Anda suka, atau bukan karakter. Baik input maupun output dapat diformat dengan semua nilai pada satu baris jika diinginkan.
Jika sebuah tabel tidak memiliki solusi unik maka Anda harus menampilkan pesan kesalahan sederhana pilihan Anda.
Output sampel:
- W W W L
L - W D L
L L - D L
L D D - L
W W W W -
Contoh output untuk tabel yang tidak dapat diselesaikan:
dunno mate
Ini adalah kode golf sehingga program terpendek dalam byte menang.
Pic terkait (Jepang versus Afrika Selatan):