Introdução
No momento, estou participando de um torneio de xadrez. Eu me inspirei na programação do torneio. No momento, estou em uma competição com outros três jogadores. Isso significa que nós quatro estamos jogando três rodadas. O cronograma é o seguinte:
Round 1: 1-4 3-2
Round 2: 3-4 2-1
Round 3: 1-3 4-2
Isso também é conhecido como Round Robin . Além disso, este é um cronograma válido . Dizemos que um cronograma é válido quando satisfaz as seguintes condições:
- Todo jogador joga uma vez contra outro jogador.
1-2
significa que o jogador1
tem branco . Todo jogador tem ou ( N / 2 - 0,5 ) ou ( N / 2 + 0,5 ) vezes branco, com N sendo a quantidade de rodadas.
Por exemplo, no exemplo acima, existem 3 rodadas. Então N = 3. Como você pode ver, a quantidade de rodadas é igual à quantidade de jogadores - 1 . Um jogador tem
- N / 2 - 0,5 = 1 vez branco, ou
- N / 2 + 0,5 = 2 vezes branco.
No exemplo acima:
- jogador
1
tem 2 vezes branco, - jogador
2
tem 1 vez branco, - jogador
3
tem 2 vezes branco, - jogador
4
tem 1 vez branco.
A tarefa
Dado um número inteiro par > 1 representando a quantidade de jogadores na competição, produza a programação do torneio.
Casos de teste:
Entrada = 4, isso significa N = 3
Input: Output:
4 1-4 3-2
3-4 2-1
1-3 4-2
Entrada = 10, isso significa 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
Entrada = 12, isso significa 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
Obviamente, os espaços em branco extras que usei entre os números são opcionais, mas não necessários. Você pode produzi-lo da forma que quiser, desde que seja legível.
Nota: Os exemplos acima não são apenas as únicas saídas válidas. Certamente existem saídas mais válidas.
Isso é código-golfe , então a submissão com a menor quantidade de bytes ganha!
1-4 3-2 3-4 2-1 1-3 4-2
paran=4
uma saída válida?Respostas:
Python 2,
200186 bytesExemplo de saída:
Ou 135 bytes , usando uma saída menos bonita (mas ainda legível):
O que produz algo como:
fonte