case

Time limit: 0.1s Memory limit: 2MB Input: case.in Output: case.out

În pădurea cu alune aveau case nn pitici numerotați de la 11 la nn, vine veverița și spune ”Vreau să stau și eu aici!”.

Cele nn căsuțe sunt așezate în linie și fiecare căsuță este identificată printr-o plăcuță pe care este scris un număr. Prima căsuță este a piticului numerotat cu 11 și are plăcuța cu numărul 11, cea de-a doua căsuța este a celui de-al doilea pitic și are plăcuța cu numărul 22, și așa mai departe, ultima căsuță este cea a piticului cu numărul nn și are plăcuța cu numărul nn. Auzind că veverița vrea să intre într-o căsuță niciun pitic nu vrea să o primească în căsuța lui.

Într-o zi, după ce piticii au plecat de acasă, veverița de supărare a luat plăcuțele de pe căsuțe, le-a amestecat și a pus câte o plăcuță în fiecare căsuță. La întoarcere, piticii văd că nu mai au plăcuțe pe case și fiecare dintre ei trebuie să-și recupereze plăcuța propriei case. Fiecare pitic intră în casa lui, găsește plăcuța de acolo și se deplasează în căsuța cu numărul de ordine egal cu numărul scris pe plăcuța găsită. Apoi, continuă în același mod cu noua plăcuță găsită, până când piticul descoperă plăcuța cu numărul casei lui. În timpul căutării unei plăcuțe, se poate întâmpla ca un pitic, din cauza plăcuței găsite în acel moment să meargă de la căsuța la care se află la una din căsuțele aflate în stânga ei. Aceasta se consideră o întoarcere pe parcursul căutării.

Cerință

Să se scrie un program care să determine:

  1. câți dintre pitici își găsesc propriile plăcuțe în casele lor;
  2. care este cel mai mare număr de căsuțe vizitate de un pitic până când își găsește propria plăcuță (se numără începând cu căsuța proprie până la căsuța care conține plăcuța căutată, inclusiv aceasta)
  3. piticul care a vizitat cele mai multe căsuțe și a făcut cele mai puține întoarceri. Dacă există mai mulți pitici care să îndeplinească aceste condiții, să se afișeze piticul cu numărul cel mai mic.

Date de intrare

Din fișierul de intrare case.in se citesc de pe prima linie numărul nn care reprezintă numărul căsuțelor. De pe cea de-a doua linie, se citesc nn numere, despărțite prin câte un spațiu, care reprezintă numerele plăcuțelor puse de veveriță în căsuțe.

Date de ieșire

În fișierul de ieșire case.out se va scrie pe prima linie un singur număr care reprezintă câți dintre pitici își găsesc propriile plăcuțe în casele lor. Pe a doua linie se va scrie un singur număr natural reprezentând cel mai mare număr de căsuțe vizitate de un pitic până când își găsește propria plăcuță. Pe cea de-a treia linie se va scrie un singur număr care reprezintă piticul care a vizitat cele mai multe căsuțe și a făcut cele mai puține întoarceri; dacă există mai mulți pitici care să îndeplinească aceste condiții, se afișează piticul cu numărul cel mai mic.

Restricții și precizări

  • 1n10 0001 \leq n \leq 10 \ 000
  • Se acordă punctaje parţiale: 30%30\% din punctaj pentru cerinţa 11, 40%40\% din punctaj pentru cerinţa 22 şi 30%30\% din punctaj pentru cerinţa 33.

Exemplu

case.in

4
3 2 4 1

case1.out

1
3
1

Explicație

Sunt 4 căsuțe:

După ce veverița ascunde plăcuțele în căsuțe:

Plăcuțe găsite de piticul 11: 3413 - 4 - 1, a vizitat 33 căsuțe, întoarceri 00
Plăcuțe găsite de piticul 22: 22, a vizitat o căsuță, întoarceri 00
Plăcuțe găsite de piticul 33: 4134 - 1 - 3, a vizitat 33 căsuțe, întoarceri 11
Plăcuțe găsite de piticul 44: 1341 - 3 - 4, a vizitat 33 căsuțe, întoarceri 11
Cel mai mare număr de căsuțe vizitate de un pitic este 33. Dintre piticii 11, 33 și 44 care au vizitat exact 33 căsuțe, doar piticul 11 are 00 întoarceri.

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