iepurasi

Time limit: 0.5s Memory limit: 5MB Input: iepurasi.in Output: iepurasi.out

Se construieşte un şir de numere naturale care respectă restricţiile:

  • primul număr din şir este 99;
  • numerele se generează în ordine strict crescătoare;
  • şirul conţine toate numerele formate doar cu cifrele 77, 88 şi 99 cu proprietatea că numărul cifrelor 99 este mai mare sau egal decât numărul cifrelor 88 şi numărul cifrelor 88 este mai mare sau egal decât numărul cifrelor 77.

Primii 1414 termeni ai şirului, în ordine, sunt: 99, 8989, 9898, 9999, 789789, 798798, 879879, 897897, 899899, 978978, 987987, 989989, 998998, 999999.
Pornind de la aceste numere, Liv a inventat un joc interactiv: NN iepuraşi sunt aşezaţi în şir, fiecare având câte un cartonaş. Fiecare cartonaş are două feţe, o faţă albă pe care este inscripţionat un număr din acest şir şi o faţă gri, pe care este inscripţionată poziţia acelui număr în şir, poziţii numerotate în ordine, începând cu valoarea 11.

Exemple. Cartonaşul care are pe faţa gri inscripţionat numărul 11 va avea pe faţa albă inscripţionat numărul 99, iar cartonaşul care are pe faţa gri inscripţionat numărul 55 va avea pe faţa albă inscripţionat numărul 789789.
Iepuraşii sunt aşezaţi într-o ordine oarecare şi ţin cartonaşele astfel încât să se vadă faţa gri. Jocul constă în a rearanja iepuraşii de la stânga la dreapta, descrescător după numerele inscripţionate pe feţele gri, având la dispoziţie doar operaţia TAPTAP pe un iepuraş. Când se aplică operaţia TAPTAP unui iepuraş atunci secvenţa de iepuraşi, începând de la cel pe care s-a făcut TAPTAP şi până la sfârşitul şirului (spre dreapta), este oglindită (ca în imaginea din dreapta). După oglindire, toţi iepuraşii din acea secvenţă ţin cartonaşele astfel încât să se vadă faţa albă. Se doreşte aplicarea unui număr cât mai mic de operaţii TAPTAP pentru rearanjarea iepuraşilor.

Cerinţe

Scrieţi un program care să citească numerele naturale NN (reprezentând numărul de iepuraşi) şi a1a_1, a2a_2, \dots, aNa_N (reprezentând, în ordine, numerele inscripţionate pe feţele gri) și care să determine:

  1. Numărul minim de operaţii TAPTAP necesare rearanjării iepuraşilor;
  2. Cel mai mic număr aflat pe o faţă albă care nu se vede, în cazul în care au rămas cartonaşe neîntoarse. Dacă toate cartonaşele au fost întoarse (la toate fiind vizibilă faţa albă) se va afişa cel mai mare număr aflat pe o faţă albă a unui cartonaş.

Date de intrare

Fişierul de intrare iepurasi.in conţine pe prima linie numărul natural NN reprezentând numărul de iepuraşi. A doua linie a fişierului conţine, în ordine, cele NN numere: a1a_1, a2a_2, \dots, aNa_N, separate prin câte un spaţiu, reprezentând în ordine, numerele inscripţionate pe feţele gri ale cartonașelor.

Date de ieşire

Fişierul de ieşire iepurasi.out va conţine pe prima linie un număr reprezentând numărul minim de operaţii TAPTAP necesare rearanjării iepuraşilor. A doua linie va conține un număr reprezentând cel mai mic număr aflat pe o faţă albă care nu se vede (în cazul în care au rămas cartonaşe neîntoarse), respectiv cel mai mare număr aflat pe o faţă albă a unui cartonaş, în cazul în care toate cartonaşele au fost întoarse (la toate fiind vizibilă faţa albă).

Restricţii și precizări

  • 2N10 0002 \leq N \leq 10 \ 000;
  • 1ai10 0001 \leq a_i \leq 10 \ 000 (1iN1 \leq i \leq N);
  • NN, a1a_1, a2a_2, ......, aNa_N sunt numere naturale;
  • pentru rezolvarea cerinţei 11 se acordă 50%50\% din punctaj, iar pentru cerinţa 22 se acordă 50%50\% din punctaj.

Exemple

iepurasi.in

5
14 5 8 9 10

iepurasi.out

1
999

Explicaţie

Se aplică o singură operaţie TAPTAP pe iepuraşul cu numărul de ordine 55. Cartonaşul neîntors are numărul de ordine 1414 (999999).

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