Introducción
Ahora mismo estoy participando en un torneo de ajedrez. Me inspiré en el calendario del torneo. En este momento, estoy en una competencia con otros tres jugadores. Eso significa que con nosotros cuatro, estamos jugando 3 rondas. El horario es el siguiente:
Round 1: 1-4 3-2
Round 2: 3-4 2-1
Round 3: 1-3 4-2
Esto también se conoce como Round Robin . Además, este es un horario válido . Decimos que un horario es válido cuando cumple las siguientes condiciones:
- Cada jugador juega una vez contra otro jugador.
1-2
significa que el jugador1
tiene blanco . Cada jugador tiene o ( N / 2 - 0.5 ) o ( N / 2 + 0.5 ) veces blanco, siendo N la cantidad de rondas.
Por ejemplo, en el ejemplo anterior, hay 3 rondas. Entonces N = 3. Como puede ver, la cantidad de rondas es igual a la cantidad de jugadores - 1 . Un jugador tiene
- N / 2 - 0.5 = 1 vez blanco, o
- N / 2 + 0.5 = 2 veces blanco.
En el ejemplo anterior:
- el jugador
1
tiene 2 veces blanco, - el jugador
2
tiene 1 vez blanco, - el jugador
3
tiene 2 veces blanco, - el jugador
4
tiene 1 vez blanco.
La tarea
Dado un incluso número entero> 1 que representa la cantidad de jugadores en la competición, la salida del programa de torneos.
Casos de prueba:
Entrada = 4, eso significa N = 3
Input: Output:
4 1-4 3-2
3-4 2-1
1-3 4-2
Entrada = 10, eso 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, eso 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
Por supuesto, los espacios en blanco adicionales que utilicé entre los números son opcionales pero no necesarios. Puede enviarlo de la forma que desee, siempre que sea legible.
Nota: Los ejemplos anteriores no son solo las únicas salidas válidas. Ciertamente hay salidas más válidas.
Este es el código de golf , por lo que gana el envío con la menor cantidad de bytes.
1-4 3-2 3-4 2-1 1-3 4-2
paran=4
una salida válida?Respuestas:
Python 2,
200186 BytesSalida de ejemplo:
O 135 Bytes , utilizando una salida menos bonita (pero aún legible):
Lo que produce algo como:
fuente