Diferente pentru problema/barman intre reviziile #2 si #1

Diferente intre titluri:

barman
Barman

Diferente intre continut:

== include(page="template/taskheader" task_id="barman") ==
 
Poveste ...
 
h2. Cerinta
 
...
 
h2. Restrictii
 
...
 
h2. Date de intrare
 
...
 
h2. Date de iesire
 
...
 
h2. Exemplu
 
| barman.in | barman.out |
| linia1
linia2
linia3
| linia1
linia2
|
 
== include(page="template/taskfooter" task_id="barman") ==
==Include(page="template/taskheader" task_id="barman")==
==Include(page="template/raw")==
 
barman
 
 
 
Paftenie a decis sa se faca barman. Inainte de asta trebuie sa dovedeasca abilitate in manevrarea bauturilor. Barul lui Paftenie este alcatuit din N camere aliniate in cerc. In fiecare camera se afla un pahar cu bautura, fiecare bautura avand o anumita valoare (cuprinsa intre 1 si 2.000.000.000). El trebuie sa mute bauturile dintr-o camera in alta astfel incat la sfarsit, bauturile sa fie sortate dupa camere. Daca la sfarsit in camera i se afla o bautura cu valoarea a[i], sirul valorilor a[1],a[2]...a[N] se considera sortat daca exista 1 <= i <= N astfel incat a[i] <= a[i+1] <= ... <= a[N] <= a[1] <= ... <= a[i-1] (sirul este circular). In orice moment, Paftenie poate tine pe tava cel mult doua pahare. Pentru deplasarea bauturilor, poate efectua urmatoarele mutari:
 
S poate lua un pahar din camera in care se afla si sa il aseze pe tava (il costa 10 secunde)
 
S poate lasa un pahar intr-o camera in care nu se afla nici o bautura (il costa 10 secunde)
 
S se poate deplasa din camera i in camera j avand pe tava c pahare (0 <= c <= 2) (il costa c*|i-j| secunde)
 
h2. Cerinta
 
Ajutati-l pe Paftenie sa sorteze paharele intr-un timp minim !
 
h2. Date de Intrare
 
Pe prima linie a fisierului de intrare barman.in este dat numarul N al bauturilor. Pe urmatoarea linie se afla N intregi reprezentand valorile bauturilor - al i-ulea numar reprezinta valoarea bauturii aflate initial in camera i (a[i]).
 
h2. Date de Iesire
 
Fisierul barman.out va contine pe prima linie un singur numar reprezentand timpul minim de sortare a bauturilor.
 
h2. Restrictii si precizari
 
S 1 <= N <= 600
 
S In orice moment, in afara de paharele care le are paftenie pe tava, intr-o camera poate exista maxim un pahar
 
h2. Exemplu
 
 
|barman.in |barman.out |Explicatii |
 
|4 |42 |* 5 2 2 |
| | |merge in camera 1 si pune paharul de acolo pe tava (10s) |
|1 5 2 2 | |* 5 2 2 |
| | |merge din camera 1 in camera 2 cu un pahar pe tava (1s) |
| | |* * 2 2 |
| | |pune pe tava paharul din camera 2 (10s) |
| | |* 1 2 2 |
| | |asaza pe masa din camera 2 paharul cu bautura de valoare 1 (10s) |
| | |* 1 2 2 |
| | |se intoarce in camera 1 cu un pahar pe tava (1s) |
| | |5 1 2 2 |
| | |asaza pe masa din camera 1 paharul cu bautura de valoare 5(10s) |
| | |-> 42 de secunde |
| | |sirul este sortat deoarece 1 <= 2 <= 2 <= 5 (a[2] <= a[3] <= a[4] <= |
| | |a[1]) |
 
 
 
==Include(page="template/taskfooter" task_id="barman")==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.