Táncverseny: körök keverése

Táncversenyen az egyes fordulókban az induló párosoknak 3, 4, vagy 5 táncot kell eltáncolnia.
A fiúk hátán rajtszám található. Minden fordulóban (előselejtező, selejtező, elődöntő, középdöntő)
a párosok egy része kiesik a versenyből, amíg a döntőre maximum 7 páros marad.
Azokra a fordulókra, amelyekben több páros van versenyben mint amennyit egyszerre a táncparkettre lehet engedni,
a párosok körbeosztást kapnak.

1. feladat
Írjon programot, mely egy adott fordulóban n párra körbeosztást generál véletlenszerűen, ha egy körben maximum k páros fér el a táncparketten.
p a párosok rajtszámai, t a táncok neveit tartalmazó tömb.
A generált körbeosztás az egyes körökben egyenletesen ossza el a párosokat, 
ha nem lehet egyenlően elosztani, az egyes körökben a párosok számában maximum 1 különbség lehet.
A program az egyes körök beosztását rajtszám szerint növekvő sorrendben listázza!

Példa: 

Bemenet: 
k = 12
p = [1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,27,29]
t = ["Angolkeringő", "Tangó", "Bécsikeringő", "Slowfox", "Quickstep"]

Kimenet:
Angolkeringő:
    1. kör:  5 7 8 14 21 22 23 24
    2. kör:  2 3 6 11 13 16 17 29
    3. kör:  1 4 9 10 15 18 19 20 27
Tangó:
    1. kör:  1 3 9 10 14 15 20 27 29
    2. kör:  2 4 6 7 11 13 18 22
    3. kör:  5 8 16 17 19 21 23 24
Bécsikeringő:
    1. kör:  1 2 3 8 16 21 22 27
    2. kör:  4 6 7 10 11 13 18 19
    3. kör:  5 9 14 15 17 20 23 24 29
Slowfox:
    1. kör:  8 9 15 17 19 22 23 24
    2. kör:  1 4 5 6 7 13 16 20 27
    3. kör:  2 3 10 11 14 18 21 29
Quickstep:
    1. kör:  2 5 6 11 14 16 21 24
    2. kör:  3 10 13 15 17 20 23 29
    3. kör:  1 4 7 8 9 18 19 22 27

2. feladat
Írjon programot, mely egy megadott rajtszámhoz kiírja az adott rajtszámú páros körbeosztását:
Példa: 

Bemenet:
r = 1

Kimenet:
Páros rajtszáma: "1", körbeosztása:
Angolkeringő:     3.  kör
Tangó:            1.  kör
Bécsikeringő:     1.  kör
Slowfox:          2.  kör
Quickstep:        3.  kör

3. feladat*
Módosítsa a programot úgy, hogy a program olyan körbeosztást generáljon (ha az adott paraméterek mellett lehetséges),
hogy "a" és "b" egymást követő táncnál ne legyen olyan páros, amelyik "a" táncot az utolsó körben és "b" táncot az első körben táncolja.
(Azaz minden pár pihenhessen a táncok között.)
Az előbbi példánál az 1-es rajtszámú páros nem tud pihenni az angolkeringő és a tangó között.
Rimini 2022 közvetítés