Spēlētāju saraksta pārbaude

4
Latvijas Informātikas olimpiādes logo

Uzdevums no 2026. g. LIO valsts kārtas; 11.-12. klasei.

Stāsts

Galda tenisa turnīrā piedalās 2N2N spēlētāji, kas pēc reitinga sakārtoti pēc kārtas un sanumurēti sākot no visstiprākā (reitinga numurs (saīsināti - rn.) 11) un beidzot ar visvājāko (rn. 2N2N). Spēlētāju pāri tiek izlozēti, N−1N-1 reizi atkārtojot šādas darbības:

  • no līdz šim vēl nepaņemtajiem spēlētājiem tiek paņemts visstiprākais spēlētājs (ar vismazāko reitinga numuru) un
  • no līdz šim vēl nepaņemtajiem spēlētājiem tiek izlozēts pretspēlētājs.

Atlikušie divi spēlētāji veido pēdējo spēlētāju pāri.

Piemēram, ja ir astoņi spēlētāji, tad pāru izloze var notikt šādi:

    1. pāris: paņemts spēlētājs ar rn. 11 un izvēlēts tā pretspēlētājs ar rn. 77,
    1. pāris: paņemts spēlētājs ar rn. 22 un izvēlēts tā pretspēlētājs ar rn. 33,
    1. pāris: paņemts spēlētājs ar rn. 44 un izvēlēts tā pretspēlētājs ar rn. 66,
    1. pāris: spēlētāji ar reitinga numuriem 55 un 88.

Izlozes organizētājs Konrāds ir ievērojis, ka, zinot šo algoritmu, pietiek pierakstīt izlozēto pretspēlētāju reitinga numurus, lai varētu atjaunot visu spēlētāju pāru sarakstu.

Diemžēl šajā pretspēlētāju reitinga numuru virknē var būt kļūdas. Nepieciešams noteikt, kāds mazākais pretspēlētāju reitinga numuru skaits šajā sarakstā jāaizstāj ar citiem, lai šo virkni būtu iespējams iegūt ar doto algoritmu. Jānosaka arī, kāds būs spēlētāju pāru saraksts pēc sākotnējās reitinga numuru virknes salabošanas.

Uzrakstiet datorprogrammu, kas dotai NN vērtībai un izlozētajiem pretspēlētāju reitingu numuriem, izvada mazāko nepieciešamo izmaiņu skaitu un visus spēlētāju pāru reitinga numurus, kas iegūti pēc aprakstītā algoritma, izmantojot salaboto sarakstu!

Ievaddati

Pirmajā rindā dots naturāls skaitlis - spēlētāju pāru skaits NN (N≤106N \leq 10^6).

Nākamajās N−1N-1 rindās katrā dots naturāls skaitlis, kas nepārsniedz 2N2N. Katram ii ievaddatu i+1i+1-ajā rindā dots tā spēlētāja, kurš tika izvēlēts kā pretspēlētājs ii-tajā pārī, reitinga numurs.

Izvaddati

Izvaddatu pirmajā rindā jāizvada vesels nenegatīvs skaitlis KK (0≤K<N0 \leq K < N) - mazākais izmaināmo reitinga numuru skaits izlozēto pretspēlētāju sarakstā.

Nākamajās NN izvaddatu rindās jāizvada spēlētāju pāru numuri. Katram ii (1≤i≤N1\leq i\leq N) izvaddatu i+1i+1-ajā rindā jābūt diviem, ar tukšumzīmi atdalītiem, naturāliem skaitļiem - ii-tā pāra spēlētāju reitinga numuriem augošā secībā. Pirmo N−1N-1 pretspēlētāju reitingu numuru sarakstam no ievaddatos doto pretspēlētāju reitingu numuru saraksta jāatšķiras tieši KK pozīcijās.

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

N≤20N \leq 20

14
3.

21≤N≤50021 \leq N \leq 500

21
4.

501≤N≤104501 \leq N \leq 10^4, visi dotie reitinga numuri ir savā starpā atšķirīgi

27
5.

Bez papildu ierobežojumiem

36
Apakšuzdevumu punktu summa = 100.

Piemēri

Ievaddati

4 1 3 6 Kopēt kodu

Izvaddati

1 1 8 2 3 4 6 5 7 Kopēt kodu

Ievaddati

5 2 4 10 9 Kopēt kodu

Izvaddati

0 1 2 3 4 5 10 6 9 7 8 Kopēt kodu

1. apakšuzdevuma ievaddati

10 8 4 16 9 20 9 19 9 17 Kopēt kodu
12 24 2 3 21 19 6 15 8 11 12 18 Kopēt kodu
11 3 4 5 13 7 8 10 22 16 20 Kopēt kodu