Sebagai penggemar tim sepak bola BE paling sukses , menjelang akhir musim saya sering bertanya-tanya apakah tim favorit saya masih memiliki peluang teoretis yang tersisa untuk menjadi juara. Tugas Anda dalam tantangan ini adalah menjawab pertanyaan itu untuk saya.
Memasukkan
Anda akan menerima tiga input: tabel saat ini, daftar pertandingan yang tersisa, dan posisi tim saat ini yang kami minati.
Input 1: The meja saat ini , urutan nomor adalah saya nomor -th adalah poin yang diperoleh oleh tim saya sejauh ini. Misalnya, input
[93, 86, 78, 76, 75]
menyandikan tabel berikut (hanya kolom terakhir yang penting):
Input 2 : Pertandingan yang tersisa , urutan tuple di mana masing-masing tuple ( i , j ) mewakili pertandingan yang tersisa antara tim i dan j . Dalam contoh di atas, input kedua [(1,2), (4,3), (2,3), (3,2), (1,2)]
berarti bahwa kecocokan yang tersisa adalah:
Chelsea vs Tottenham, Liverpool vs Man. City, Tottenham vs Man. City, Man. City vs Tottenham, Chelsea vs Tottenham
Input 3: The posisi saat ini . Dari tim kami tertarik Misalnya, masukan dari 2
untuk contoh di atas berarti bahwa kami ingin tahu apakah Tottenham masih bisa menjadi juara.
Keluaran
Untuk setiap pertandingan yang tersisa dari formulir ( i , j ), ada tiga hasil yang mungkin:
- Tim saya menang: Tim saya mendapat 3 poin , tim j mendapat 0 poin
- Tim j menang: Tim i mendapat 0 poin , tim j mendapat 3 poin
- Draw: Tim i dan j keduanya mendapatkan 1 poin
Anda harus menampilkan nilai kebenaran jika ada beberapa hasil untuk semua game yang tersisa sehingga pada akhirnya, tidak ada tim lain yang memiliki poin lebih banyak dari tim yang ditentukan dalam input ke-3. Jika tidak, hasilkan nilai palsu.
Contoh : Pertimbangkan input contoh dari bagian di atas:
Input 1 = [93, 86, 78, 76, 75]
, Input 2 = [(1,2), (4,3), (2,3), (3,2), (1,2)]
, Input 3 =2
Jika tim 2
memenangkan semua pertandingan yang tersisa (yaitu (1,2), (2,3), (3,2), (1,2)
), ia mendapat 4 * 3 = 12 poin tambahan; tidak ada tim lain yang mendapat poin dari pertandingan ini. Katakanlah sisa pertandingan lainnya (yaitu (4,3)
) seri. Maka skor akhir adalah:
Team 1: 93, Team 2: 86 + 12 = 98, Team 3: 78 + 1 = 79, Team 4: 76 + 1 = 77, Team 5: 75
Ini berarti bahwa kami telah menemukan beberapa hasil untuk pertandingan yang tersisa sehingga tidak ada tim lain yang memiliki poin lebih dari tim 2
, sehingga output untuk input ini harus benar.
Detail
- Anda dapat menganggap input pertama sebagai urutan yang diurutkan, yaitu untuk i < j , entri ke- i sama dengan atau lebih besar dari entri ke- j . Input pertama dapat diambil sebagai daftar, string atau sejenisnya.
- Anda dapat mengambil input kedua sebagai string, daftar tupel atau sejenisnya. Atau, Anda dapat menganggapnya sebagai array dua dimensi di
a
manaa[i][j]
jumlah entri formulir(i,j)
dalam daftar kecocokan yang tersisa. Misalnya,a[1][2] = 2, a[2][3] = 1, a[3][2] = 1, a[4][3] = 1
berkorespondensi dengan[(1,2), (4,3), (2,3), (3,2), (1,2)]
. - Untuk input kedua dan ketiga, Anda dapat mengasumsikan pengindeksan 0 bukannya pengindeksan 1.
- Anda dapat mengambil tiga input dalam urutan apa pun.
Silakan tentukan format input persis yang Anda pilih dalam jawaban Anda.
Node samping : Masalah yang mendasari tantangan ini terbukti NP-lengkap dalam " Eliminasi Sepakbola Sulit Diputuskan di Bawah Aturan 3-Poin ". Menariknya, jika hanya dua poin yang diberikan untuk menang, masalahnya menjadi terpecahkan dalam waktu polinomial.
Uji Kasus
Semua kasus uji dalam format Input1
, Input2
, Input3
.
Benar:
[93, 86, 78, 76, 75]
,[(1,2), (4,3), (2,3), (3,2), (1,2)]
,2
[50]
,[]
,1
[10, 10, 10]
,[]
,3
[15, 10, 8]
,[(2,3), (1,3), (1,3), (3,1), (2,1)]
,2
Falsy:
[10, 9, 8]
,[]
,2
[10, 9, 9]
,[(2,3), (3,2)]
,1
[21, 12, 11]
,[(2,1), (1,2), (2,3), (1,3), (1,3), (3,1), (3,1)]
,2
Pemenang
Ini adalah kode-golf , sehingga jawaban terpendek yang benar (dalam byte) menang. Pemenang akan dipilih satu minggu setelah jawaban pertama yang benar diposting.