sort2dist

Time limit: 0.04s Memory limit: 8MB Input: sort2dist.in Output: sort2dist.out

Jocul pe care îl joacă Robo atunci când se plictisește este un joc inteligent pentru roboței. Pe ecranul tabletei lui roboțești, sunt NN căsuțe de formă pătrată, cu latura egală cu 11. Căsuțele sunt așezate pe un rând, una lângă alta, fiind etichetate, în această ordine, cu numere de la 11 la NN. Fiecare căsuță conține câte un număr natural, identificatorul câte unuia dintre prietenii săi, roboței, ca și el. Identificatorii se pot repeta.

Robo poate interschimba conținutul a două căsuțe, numai dacă distanța acestora pe orizontală este egală cu distanța dintre brațele sale; distanța, pe orizontală, dintre centrele a două căsuțe etichetate cu ii, respectiv cu jj este jij-i (1i<jN1 \le i < j \le N). El își poate fixa în orice moment distanța dintre brațe la 11 sau își poate dubla distanța curentă dintre brațe, de oricâte ori este necesar, fără a depăși valoarea N1N-1. Astfel, distanța dintre brațele sale poate fi 11, apoi, prin dublare, 22, apoi, prin dublare 44, apoi, prin dublare 88 etc.

La începutul jocului, distanța dintre brațele lui Robo este 11. De fiecare dată când consideră convenabilă distanța dintre brațe, realizează o interschimbare.

Cerință

Se cere ca Robo să așeze identificatorii în căsuțe în ordine crescătoare, prin maximum 1250012500 interschimbări de tipul celei precizate mai sus.

Date de intrare

Fișierul sort2dist.in conține:

  • pe prima linie numărul natural NN, cu semnificația din enunț;
  • pe următoarele NN linii, NN numere, reprezentând, în această ordine, identificatorii conținuți în căsuțele tabletei (identificatorul de pe linia ii este conținut de căsuța i1i-1).

Date de ieșire

Fișierul sort2dist.out conține:

  • pe prima linie un număr natural MM, reprezentând numărul de interschimbări realizate de Robo (nu neapărat numărul minim de interschimbări necesare);
  • pe fiecare dintre următoarele MM linii (doar dacă MM este nenul), câte două numere naturale, separate prin câte un spațiu, reprezentând etichetele căsuțelor al căror conținut s-a interschimbat, în ordinea realizării acestor interschimbări.

Restricții și precizări

  • 1N1 0001 \le N \le 1 \ 000;
  • identificatorii sunt numere naturale de maximum 3030 de cifre;
  • pentru 25%25\% din punctaj, fișierele de test conțin numere cu maximum 1818 cifre;
  • pentru 25%25\% din punctaj, N100N \le 100.

Exemplu

sort2dist.in

4
5
7
6
2

sort2dist.out

2
2 4
2 1

Explicație

Tableta are 44 căsuțe, conținând, în această ordine, identificatorii (5,7,6,2)(5, 7, 6, 2).
Pentru ordonarea crescătoare s-au realizat 22 interschimbări:

  • s-a interschimbat conținutul căsuțelor 22 și 44 (distanța dintre centrele lor fiind 22), identificatorii din căsuțe fiind acum (5,2,6,7)(5, \underline{2}, 6, \underline{7});
  • s-a interschimbat conținutul căsuțelor 11 și 22 (distanța dintre centrele lor fiind 11), identificatorii din căsuțe fiind acum (2,5,6,7)(\underline{2}, \underline{5}, 6, 7), ordonați crescător.

Log in or sign up to be able to send submissions!