Diferente pentru problema/wall intre reviziile #6 si #12

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="wall") ==
Republica Federala Serbanistan a fost separata de vecina ei din Sud, Republica Federala Popanistan, printr-un zid. Acest zid este impartit in $Z$ sectiuni si are un singur paznic, situat initial pe sectiunea $1$. Zidul a fost ridicat pentru a nu permite imigrantilor din Popanistan sa intre ilegal in Serbanistan, dar in timp, situatia in Serbanistan s-a deteriorat, astfel incat acum zidul are rolul de a-si tine proprii cetateni in interiorul tarii. Astazi, $N$ dintre acesti cetateni vor sa evadeze, sarind peste zid. Pentru fiecare dintre cei $N$ cetateni se cunoaste timpul sau de escaladare a zidului: al $i$-lea cetatean are nevoie de $time[i]$ secunde pentru a sari zidul. La fiecare moment de timp, maxim un cetatean va incerca sa escaladeze zidul. In momentul in care un cetatean incepe escaladarea, paznicul se va indrepta spre el cu o viteza de o sectiune de zid pe secunda. Daca paznicul ajunge la sectiunea escaladata exact in ultima secunda a incercarii cetateanului sau mai tarziu, acesta scapa. Daca in schimb paznicul ajunge mai devreme cetateanul va fi capturat.
Republica Federala Serbanistan a fost separata de vecina ei din Sud, Republica Federala Popanistan, printr-un zid. Acest zid este impartit in $Z$ sectiuni adiacente si are un singur paznic, situat initial pe sectiunea $1$. Zidul a fost ridicat pentru a nu permite imigrantilor din Popanistan sa intre ilegal in Serbanistan, dar in timp, situatia in Serbanistan s-a deteriorat, astfel incat acum zidul are rolul de a-si tine proprii cetateni in interiorul tarii. Astazi, $N$ dintre acesti cetateni vor sa evadeze, sarind peste zid. Pentru fiecare dintre cei $N$ cetateni se cunoaste timpul sau de escaladare a zidului: al $i$-lea cetatean are nevoie de $time[i]$ secunde pentru a sari zidul. La fiecare moment de timp, maxim un cetatean va incerca sa escaladeze zidul. El va alege una din cele $Z$ sectiuni ale zidului pentru a face acest lucru. In momentul in care un cetatean incepe escaladarea, paznicul se va indrepta spre el cu o viteza de o sectiune de zid pe secunda. Daca cetateanul termina escaladarea inainte ca paznicul sa ajunga la sectiunea in cauza, cetateanul este evadat iar paznicul se opreste din miscare, ramanand pe loc. Daca paznicul ajunge in sectiunea in cauza exact in ultima secunda a sariturii cetateanului, cetateanul reuseste totusi sa evadeze.
 
Voi trebuie sa aflati o ordine a evadarii cetatenilor cat si sectiunea de zid pe care o va escalada fiecare cetatean astfel incat un numar maxim dintre ei sa poata evada cu succes.
h2. Date de intrare
Fişierul de intrare $wall.in$ ...
Fişierul de intrare $wall.in$ va contine pe prima sa linie valoarile $N$ si $Z$, semnificand numarul de cetateni care vor sa evadeze din Serbanistan, respectiv numarul de sectiuni ale zidului. Urmeaza $N$ linii, a $i$-linie continand numarul de secunde necesar pentru ca al $i$-lea cetatean sa escaladeze zidul.
h2. Date de ieşire
În fişierul de ieşire $wall.out$ ...
Fişierul de ieşire $wall.out$ ca contine pe prima sa linie valoarea $MAX$, semnificand numarul maxim de cetateni care pot evada cu succes. Urmeaza $N$ linii care contin cate doua valori: indicele cetateanului pe care-l vom trimite sa evadeze in momentul respectiv (in ordinea data in fisierul de intrare), respectiv sectiunea de zid pe care acesta o va escalada.
 
Pentru ca solutia voastra sa fie corecta trebuie ca sirul de indici sa formeze o permutare, iar fiecare sectiune afisata sa se afle in intervalul $[1..Z]$. Bineinteles, trebuie ca urmand aceasta strategie sa evadeze exact $MAX$ cetateni. Daca exista mai multe solutii corecte este acceptata oricare dintre acestea.
 
Notati ca toti cei $N$ evadati trebuie sa incerce sa sara zidul la un moment dat, indiferent de rezultatul acestei tentative.
h2. Restricţii
h2. Exemplu
table(example). |_. wall.in |_. wall.out |
| 3 6
| 3 5
1
1
2
| 3
1 6
2 6
3 6
1 5
2 5
3 5
|
| 3 5
4
4
4
| 3
1 5
2 1
3 5
|
h3. Explicaţie
Zidul este suficient de lung astfel incat toti cetatenii sa poata sari zidul prin sectiunea 6 fara sa fie ajunsi de paznic.
In exemplul $1$, zidul este suficient de lung astfel incat toti cetatenii sa poata sari zidul prin sectiunea $5$ fara sa fie ajunsi de paznic. Dupa trecerea cetateanului $1$, paznicul se va afla in sectiunea $2$. Dupa trecerea cetateanului $2$, paznicul se va afla in sectiunea $3$, iar dupa trecerea cetateanului $3$, paznicul s-ar afla in sectiunea $5$. Observam ca desi paznicul a ajuns in sectiunea $5$ in ultima secunda a escaladarii cetateanului $3$, acesta din urma a evadat cu succes. Daca paznicul ar fi ajuns cu o secunda mai devreme, lucrurile ar fi stat diferit.
In exemplul $2$, cetateanul $1$ va urca zidul pe sectiunea $5$ si va reusi sa scape, moment in care paznicul se va afla in aceeasi sectiune. Cetateanul $2$ va trece zidul pe la sectiunea $1$, iar paznicul o sa se intoarca pentru a-l prinde, dar nu va reusi. In momentul in care cetateanul $3$ incepe sa urce sectiunea $5$, paznicul va fi in sectiunea $1$ si va porni din nou spre sectiunea $5$, nereusind nici de aceasta data sa prinda cetateanul care urca.
 
== include(page="template/taskfooter" task_id="wall") ==
 
== include(page="template/taskfooter" task_id="wall") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.