Fişierul intrare/ieşire:loc.in, loc.outSursă.campion 2005
AutorMarinel SerbanAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.1 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Loc (clasa a 6-a)

Sunt diriginte la o clasa a IX-a, clasa nu tocmai cuminte. Dupa primele saptamani de scoala am ajuns la concluzia ca trebuie sa rearanjez elevii in banci. Asa ca am numerotat scaunele de la 1 la n si am stabilit asezarea elevilor. De acum incolo voi considera ca elevul 1 este cel care sta pe scaunul 1, elevul 2 pe scaunul 2, s.a.m.d.

Evident, la primul control inopinat am gasit elevii asezati in cu totul alta ordine decat i-am asezat. Prin urmare, le-am cerut sa isi reia asezarea pe care am stabilit-o. Pentru a nu crea invalmaseala in clasa, am stabilit urmatorul procedeu de reluare a locurilor:

Daca elevul i nu este la locul sau (deci pe scaunul i) se ridica, se duce la scaunul sau; daca scaunul sau este ocupat, elevul care statea pe scaunul i se ridica, pe scaunul i se aseaza elevul i, iar cel care s-a ridicat isi cauta locul in acelasi mod, pana cand ultimul elevul care s-a ridicat isi gaseste scaunul liber.

Evident, procedeul se repeta pana cand toti elevii sunt asezati la locurile lor.

Cerinta

Scrieti un program care sa determine de cate ori trebuie repetat procedeul astfel incat toti elevii sa fie reasezati la locurile lor.

Date de intrare

Fişierul de intrare loc.in va contine pe prima linie un numar natural n care reprezinta numarul de elevi din clasa.
Pe urmatoarele n linii este descris modul in care am gasit elevii asezati atunci cand am venit in control.
Mai exact, pe linia i+1 se afla numarul elevului care statea pe scaunul i.

Date de ieşire

Fişierul de ieşire loc.out va contine o singura linie pe care va fi scris un numar natural care reprezinta numarul de repetari ale procedeului, necesare pentru ca toti elevii sa isi reia locurile.

Restricţii

  • 1 ≤ n ≤ 1000

Exemplu

loc.inloc.outExplicaţie
5
3
4
5
2
1
2
1. Elevul 3 se ridica, se duce la locul sau (scaunul 3);
de pe scaunul 3 se ridica elevul 5, care se duce la locul sau,
de pe care se ridica elevul 1, care isi gaseste locul liber.
 
2. Se ridica elevul 4, se duce la locul sau (scaunul 4),
de pe care se ridica elevul 2, care se duce la scaunul sau pe care
il gaseste liber.
Trebuie sa te autentifici pentru a trimite solutii. Click aici