pengantar
Saat ini saya sedang berpartisipasi dalam turnamen catur. Saya terinspirasi oleh jadwal turnamen. Saat ini, saya sedang bersaing dengan tiga pemain lain. Itu artinya dengan kita berempat, kita bermain 3 putaran. Jadwal berjalan sebagai berikut:
Round 1: 1-4 3-2
Round 2: 3-4 2-1
Round 3: 1-3 4-2
Ini juga dikenal sebagai Round Robin . Juga, ini adalah jadwal yang valid . Kami mengatakan bahwa jadwal valid, jika memenuhi syarat-syarat berikut:
- Setiap pemain bermain satu kali melawan pemain lain.
1-2
berarti pemain1
memiliki warna putih . Setiap pemain memiliki atau ( N / 2 - 0,5 ) atau ( N / 2 + 0,5 ) kali putih, dengan N menjadi jumlah putaran.
Misalnya, dalam contoh di atas, ada 3 putaran. Jadi N = 3. Seperti yang Anda lihat, jumlah putaran sama dengan jumlah pemain - 1 . Seorang pemain memiliki keduanya
- N / 2 - 0,5 = 1 kali putih, atau
- N / 2 + 0,5 = 2 kali putih.
Dalam contoh di atas:
- pemain
1
memiliki 2 kali putih, - pemain
2
memiliki 1 kali putih, - pemain
3
memiliki 2 kali putih, - pemain
4
memiliki 1 kali putih.
Tugas
Diberi genap bilangan bulat > 1 yang mewakili jumlah pemain dalam kompetisi, menghasilkan jadwal turnamen.
Kasus uji:
Input = 4, itu berarti N = 3
Input: Output:
4 1-4 3-2
3-4 2-1
1-3 4-2
Input = 10, itu berarti N = 9
Input: Output:
10 1-10 2-9 3-8 4-7 5-6
10-6 7-5 8-4 9-3 1-2
2-10 3-1 4-9 5-8 6-7
10-7 8-6 9-5 1-4 2-3
3-10 4-2 5-1 6-9 7-8
10-8 9-7 1-6 2-5 3-4
4-10 5-3 6-2 7-1 8-9
10-9 1-8 2-7 3-6 4-5
5-10 6-4 7-3 8-2 9-1
Input = 12, itu berarti N = 11
Input: Output:
12 1-14 2-13 3-12 4-11 5-10 6-9 7-8
14-8 9-7 10-6 11-5 12-4 13-3 1-2
2-14 3-1 4-13 5-12 6-11 7-10 8-9
14-9 10-8 11-7 12-6 13-5 1-4 2-3
3-14 4-2 5-1 6-13 7-12 8-11 9-10
14-10 11-9 12-8 13-7 1-6 2-5 3-4
4-14 5-3 6-2 7-1 8-13 9-12 10-11
14-11 12-10 13-9 1-8 2-7 3-6 4-5
5-14 6-4 7-3 8-2 9-1 10-13 11-12
14-12 13-11 1-10 2-9 3-8 4-7 5-6
6-14 7-5 8-4 9-3 10-2 11-1 12-13
14-13 1-12 2-11 3-10 4-9 5-8 6-7
7-14 8-6 9-5 10-4 11-3 12-2 13-1
Tentu saja, spasi putih tambahan yang saya gunakan di antara angka-angka adalah opsional tetapi tidak perlu. Anda dapat menampilkannya dalam bentuk apa pun yang Anda suka, asalkan dapat dibaca.
Catatan: Contoh di atas bukan hanya output yang valid saja . Tentu saja ada lebih banyak output yang valid.
Ini adalah kode-golf , jadi pengiriman dengan jumlah byte paling sedikit menang!
1-4 3-2 3-4 2-1 1-3 4-2
untukn=4
output yang valid?Jawaban:
Python 2,
200186 BytesContoh output:
Atau 135 Bytes , dengan menggunakan keluaran yang kurang cantik (tapi masih bisa dibaca):
Yang menghasilkan sesuatu seperti:
sumber