Pagini recente »
aht1
|
Profil CotenescuTudorIosif
|
Monitorul de evaluare
|
10pb-easy_test
|
Diferențe pentru problema/fermier1 între reviziile 16 și 18
Nu există diferențe între titluri.
Diferențe între conținut:
== include(page="template/taskheader" task_id="fermier1") ==
_Notă: problema este punctată ușor diferit față de original din cauza restricțiilor impuse de evaluatorul infoarena._
!>problema/fermier1?fermier1.png!
Dorel și-a achiziționat o fermă cu *n* plantații și o mașină de transport cu o capacitate *c*, pentru transportul de îngrășăminte la toate plantațiile. Îngrășămintele se află într-un depozit, în cantitate suficientă pentru scopul propus. Plantațiile și depozitul sunt dispuse sub forma unui cerc. Există drumuri doar între plantația *i* și plantația *i*+1 (1 ≤ [*i*] ≤ [*n*]-1), precum și între depozit și plantația 1 și depozit și plantația *n*, ca în figură. La o plantație *i* se poate ajunge de la depozit trecând prin plantațiile 1, 2, ..., *i*-1 sau prin plantațiile *n*, *n*-1, ..., *i*+1, alegerea făcându-se în funcție de traseul cel mai scurt. Se cunosc aceste distanțe, precum și cantitatea de îngrășăminte necesară pentru fiecare plantație. La fiecare încărcare, Dorel ia din depozit exact cantitatea *c*. Dorel vrea să-și organizeze bine munca la fermă și să consume cât mai puțină benzină prin alegerea celor mai scurte trasee de parcurs. Plantațiile trebuie să fie aprovizionate obligatoriu în ordinea următoare: mai întâi plantația 1, apoi plantația 2, plantația 3,..., plantația *n*. În plus, și-a propus să încarce o nouă cantitate de îngrășământ doar după ce a folosit toată cantitatea încărcată anterior. Transportarea îngrășămintelor pe plantații se face deci, începând cu plantația 1. După ce se transportă toată cantitatea necesară pentru această plantație, se trece la plantația 2, și tot așa în ordine la 3, 4 etc. până se deservește ultima plantație. Dacă după ce s-au transportat îngrășămintele necesare pentru plantația *i* în mașină au mai rămas încă îngrășăminte, acestea trebuie utilizate în continuare pentru alte plantații, alese în ordinea impusă (începând cu plantația *i*+1, apoi *i*+2 etc.), până se epuizează toată cantitatea transportată de mașină. Astfel, dacă de la plantația *i* trebuie să ajungă la plantația *i*+1, va alege cel mai scurt traseu dintre traseul direct de la plantația *i* la *i*+1 și traseul care trece prin plantațiile *i*-1, *i*-2, ..., 1, depozit, *n*, *n*-1, ..., *i*+1. La final, mașina trebuie să se întoarcă la depozit, goală sau cu cantitatea rămasă după aprovizionarea cu îngrășăminte a plantației *n*.
Dorel și-a achiziționat o fermă cu *n* plantații și o mașină de transport cu o capacitate *c*, pentru transportul de îngrășăminte la toate plantațiile. Îngrășămintele se află într-un depozit, în cantitate suficientă pentru scopul propus. Plantațiile și depozitul sunt dispuse sub forma unui cerc. Există drumuri doar între plantația *i* și plantația [*i*]+1 (1 ≤ [*i*] ≤ [*n*]-1), precum și între depozit și plantația 1 și depozit și plantația *n*, ca în figură. La o plantație *i* se poate ajunge de la depozit trecând prin plantațiile 1, 2, ..., [*i*]-1 sau prin plantațiile *n*, [*n*]-1, ..., [*i*]+1, alegerea făcându-se în funcție de traseul cel mai scurt. Se cunosc aceste distanțe, precum și cantitatea de îngrășăminte necesară pentru fiecare plantație. La fiecare încărcare, Dorel ia din depozit exact cantitatea *c*. Dorel vrea să-și organizeze bine munca la fermă și să consume cât mai puțină benzină prin alegerea celor mai scurte trasee de parcurs. Plantațiile trebuie să fie aprovizionate obligatoriu în ordinea următoare: mai întâi plantația 1, apoi plantația 2, plantația 3,..., plantația *n*. În plus, și-a propus să încarce o nouă cantitate de îngrășământ doar după ce a folosit toată cantitatea încărcată anterior. Transportarea îngrășămintelor pe plantații se face deci, începând cu plantația 1. După ce se transportă toată cantitatea necesară pentru această plantație, se trece la plantația 2, și tot așa în ordine la 3, 4 etc. până se deservește ultima plantație. Dacă după ce s-au transportat îngrășămintele necesare pentru plantația *i* în mașină au mai rămas încă îngrășăminte, acestea trebuie utilizate în continuare pentru alte plantații, alese în ordinea impusă (începând cu plantația [*i*]+1, apoi [*i*]+2 etc.), până se epuizează toată cantitatea transportată de mașină. Astfel, dacă de la plantația *i* trebuie să ajungă la plantația [*i*]+1, va alege cel mai scurt traseu dintre traseul direct de la plantația *i* la [*i*]+1 și traseul care trece prin plantațiile [*i*]-1, [*i*]-2, ..., 1, depozit, *n*, [*n*]-1, ..., [*i*]+1. La final, mașina trebuie să se întoarcă la depozit, goală sau cu cantitatea rămasă după aprovizionarea cu îngrășăminte a plantației *n*.
h2. Cerință
h2. Date de intrare
Fișierul de intrare $fermier1.in$ conține pe prima linie numerele naturale *n* și *c*, separate printr-un spațiu. A doua linie conține numerele naturale *d[~0~]*, *d[~1~]*, *d[~2~]*, ..., *d[~n-1~]*, *d[~n~]* separate două câte două prin câte un spațiu, unde *d[~0~]* este distanța dintre prima plantație și depozit, *d[~i~]* (1 ≤ [*i*] ≤ [*n*]-1) este distanța între plantația *i* și plantația *i*+1, iar *d[~n~]* este distanța dintre plantația *n* și depozit. Pe linia a treia se găsesc numerele naturale *q[~1~]*, *q[~2~]*, ..., *q[~n-1~]*, *q[~n~]* separate două câte două prin câte un spațiu, *q[~i~]* reprezentând cantitatea de îngrășăminte necesară pentru plantația *i* (1 ≤ [*i*] ≤ [*n*]).
Fișierul de intrare $fermier1.in$ conține pe prima linie numerele naturale *n* și *c*, separate printr-un spațiu. A doua linie conține numerele naturale *d[~0~]*, *d[~1~]*, *d[~2~]*, ..., *d[~n-1~]*, *d[~n~]* separate două câte două prin câte un spațiu, unde *d[~0~]* este distanța dintre prima plantație și depozit, *d[~i~]* (1 ≤ [*i*] ≤ [*n*]-1) este distanța între plantația *i* și plantația [*i*]+1, iar *d[~n~]* este distanța dintre plantația *n* și depozit. Pe linia a treia se găsesc numerele naturale *q[~1~]*, *q[~2~]*, ..., *q[~n-1~]*, *q[~n~]* separate două câte două prin câte un spațiu, *q[~i~]* reprezentând cantitatea de îngrășăminte necesară pentru plantația *i* (1 ≤ [*i*] ≤ [*n*]).
h2. Date de ieșire
* 1 ≤ *d[~i~]* ≤ 1000, 0 ≤ *i* ≤ *n*;
* 1 ≤ *q[~i~]* ≤ 1000, 1 ≤ *i* ≤ [*n*];
* 1 ≤ *c* ≤ 1000;
* -Se acordă 10 puncte din oficiu.-
* Se acordă 10 puncte din oficiu, cu condiția ca programul să se termine normal pe exemplul de la intrare.
h2. Exemplu
table(example).
table(example).
|_. fermier1.in |_. fermier1.out |_. Explicație |
| 3 6
1 10 2 3
Nu există diferențe între securitate.