CSES - Putka Open 2015 – finaali - Turnaus
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Uolevi järjestää shakkiturnauksen, johon on ilmoittautunut n osallistujaa. Jokainen osallistuja on kertonut, monenko muun kanssa hän haluaa pelata erän shakkia.

Pelaaja ei voi pelata itseään vastaan, ja sama pari voi pelata keskenään korkeintaan kerran. Uolevia vastaan ei voi pelata. Voisitko auttaa Uolevia suunnittelemaan turnauksen ohjelman?

Syöte

Syötteen ensimmäisellä rivillä on kokonaisluku n: pelaajien määrä. Pelaajat on numeroitu kokonaisluvuin 1,2,\ldots,n.

Seuraavalla rivillä on n kokonaislukua x_1,x_2,\ldots,x_n: jokaisesta osallistujasta tieto, monenko kanssa hän haluaa pelata.

Tuloste

Ohjelmasi tulee tulostaa ensin kokonaisluku m: pelien määrä.

Tämän jälkeen ohjelmasi tulee tulostaa m riviä, joista jokainen kuvaa yhden pelin. Rivillä tulee olla kaksi kokonaislukua: pelaajien numerot.

Jos ratkaisuja on useita, voit tulostaa niistä minkä tahansa. Jos ratkaisua ei ole olemassa, tulosta "QAQ".

Esimerkki 1

Syöte:

5
1 3 2 0 2

Tuloste:

4
1 2
2 3
2 5
3 5

Esimerkki 2

Syöte:

5
1 0 4 1 0

Tuloste:

QAQ

Osatehtävä 1 (19 pistettä)

  • 1 \le n \le 10
  • 0 \le x_i \le n-1

Osatehtävä 2 (42 pistettä)

  • 1 \le n \le 100
  • 0 \le x_i \le n-1

Osatehtävä 3 (39 pistettä)

  • 1 \le n \le 10^5
  • \sum_{i=1}^{n} x_i \le 2 \cdot 10^5