Diferente pentru problema/gordonramsay intre reviziile #7 si #32

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="gordonramsay") ==
// TODO: restul enuntului + exprimare mai buna
_După rezultatele recente, Semicerc a intrat în pământ de ruşine... aşa că s-a decis sa îşi deschidă un restaurant împreună cu Giotozila care strânge bani pentru un coş de gunoi mai rezistent._
_După rezultatele recente, Semicerc a intrat în pământ de ruşine... aşa că s-a decis să îşi deschidă un restaurant împreună cu Giotozila care strânge bani pentru un coş de gunoi mai rezistent._
Ca orice -_bişniţă_- afacere, să deţii un restaurant nu este uşor. Trebuie să ai grijă ca ingredientele să fie mereu prezente in frigidere ca să poţi satisface cât mai mulţi clienţi (implicit să faci cât mai mulţi bani). Trebuie să ai grijă ca ingredientele să fie mereu proaspete ca să nu fi responsabil pentru toxinfecţii alimentare sau alte boli.
Ca orice -_bişniţă_- afacere, să deţii un restaurant nu este uşor. Trebuie să ai grijă ca ingredientele să fie mereu prezente în frigidere ca să poţi satisface cât mai mulţi clienţi (implicit să faci cât mai mulţi bani). De asemenea, trebuie să ai grijă ca ingredientele să fie mereu proaspete ca să nu fi responsabil pentru toxinfecţii alimentare sau alte boli.
În această lume fictivă, ziua durează $N$ ore şi în fiecare oră vine un client căruia îi cunoşti felul de mâncare pe care îl va comanda. Meniul acestui restaurant contine $K$ feluri de mâncare. Considerăm că fiecare fel de mâncare este alcătuit dintr-un singur ingredient. Fiecare ingredient este definit de $cost$, $profit$ şi $rezistenţă$. Costul unui ingredient este suma de bani plătită pentru a cumpăra o unitate dintr-un anumit ingredient, profitul este suma de bani câştigată daca vinzi felul de mâncare corespunzător unui ingredient, iar rezistenţa reprezintă numărul de ore în care ingredientul este proaspăt.
În această lume fictivă, ziua durează $N$ ore şi în fiecare oră vine un client căruia îi cunoşti felul de mâncare pe care îl va comanda. Meniul acestui restaurant conţine $K$ feluri de mâncare. Considerăm că fiecare fel de mâncare este alcătuit dintr-un singur ingredient. Fiecare ingredient este definit de $cost$, $profit$ şi $rezistenţă$. Costul unui ingredient este suma de bani plătită pentru a cumpăra o unitate dintr-un anumit ingredient, profitul este suma de bani câştigată dacă vinzi felul de mâncare corespunzător unui ingredient, iar rezistenţa reprezintă numărul de ore în care ingredientul este proaspăt.
Pentru procura ingredientelor, restaurantul deţine o maşinuţă care vine din $t$ în $t$ secunde începând de la ora 0, deci în momentele $0, t, 2 * t, 3 * t, 4 * t, ..., k * t unde k * t < N$. Aceasta vine cu ingrediente proaspete de la non-stop, mai exact cu $x{~1~}$ unităţi din primul ingredient, $x{~2~}$ unităţi din al doilea ingredient, ..., $x{~K~}$ din al K-ulea ingredient. Astfel, de fiecare dată când vine maşinuţa, patronii trebuie să plătească $x{~1~} * cost{~1~} + x{~2~} * cost{~2~} + ... + x{~K~} * cost{~K~}$ unităţi de bani. Din motive sanitare, ingredientele care erau înainte în frigider vor fi aruncate la gunoi.
Pentru procura ingredientelor, restaurantul deţine un blatmobil care vine din $t$ în $t$ secunde începând de la ora 0, deci în momentele $0, t, 2 * t, 3 * t, 4 * t, ..., q * t unde q * t < N$. Acesta vine cu ingrediente proaspete de la non-stop, mai exact cu $x{~1~}$ unităţi din primul ingredient, $x{~2~}$ unităţi din al doilea ingredient, ..., $x{~K~}$ din al K-ulea ingredient. Astfel, de fiecare dată când vine blatmobilul, patronii trebuie să plătească $x{~1~} * cost{~1~} + x{~2~} * cost{~2~} + ... + x{~K~} * cost{~K~}$ $JC$ "({$Junior Coins$})":https://www.infoarena.ro/problema/bitconnect. Din motive sanitare, ingredientele care erau înainte în frigider vor fi aruncate la gunoi.
O zi de lucru funcţionează astfel: la fiecare oră vine un client care comandă un fel de mâncare; dacă în frigider se află ingredientul necesar pentru felul de mâncare, acesta va fi servit cu acel fel de mâncare, va fi fericit şi va lăsa $profit{~fel~}$ unităţi de bani, altfel va pleca nemulţumit şi nu va lăsa niciun ban.
O zi de lucru funcţionează astfel: la fiecare oră vine un client care comandă un fel de mâncare; dacă în frigider se află ingredientul necesar pentru felul de mâncare, acesta va fi servit cu acel fel de mâncare, va fi fericit şi va lăsa $profit{~fel~}$ $JC$, altfel va pleca nemulţumit şi nu va lăsa niciun $JC$.
h2. Cerinţa
h2. Date de intrare
Fişierul de intrare $gordonramsay.in$ va conţine pe prima linie numărul $N$ reprezentând numărul de ore dintr-o zi. Pe a doua linie va fi un şir de $N$ numere care reprezintă comenzile fiecărui om. Pe a treia linie se va găsi numărul
Fişierul de intrare $gordonramsay.in$ va conţine pe prima linie numerele $N$ şi $K$ reprezentând numărul de ore dintr-o zi, respectiv numărul de feluri din meniu. Pe a doua linie va fi un şir de $N$ numere care reprezintă comenzile fiecărui om. Pe următoarele $K$ linii se vor găsi triplete de numere, a $i-a$ linie, $1 &le; i &le; K$, conţinând numerele $cost{~i~}$, $profit{~i~}$ şi $rezistenţă{~i~}$.
h2. Date de ieşire
În fişierul de ieşire $gordonramsay.out$ ...
În fişierul de ieşire $gordonramsay.out$ se vor găsi pe prima linie profitul maxim obţinut, pe a doua linie numărul $t$ cu semnificaţia din enunţ, iar pe a treia linie se vor găsi $K$ numere $x{~1~}, x{~2~}, ..., x{~K~}$ cu semnificaţia din enunţ.
h2. Restricţii
* $... &le; ... &le; ...$
* $1 &le; cost{~i~}$, $profit{~i~}$, $rezistenţă{~i~} &le; 10^9^; 1 &le; i &le; N$
* $Primul client vine la ora 0, al doilea la ora 1, ..., al N-ulea la ora N - 1$
* $Numerele din output trebuie să fie numere naturale$
* $1 &le; t &le; N$
* $0 &le; x{~i~} &le; N; 1 &le; i &le; K$
* $Un aliment adus la momentul i poate fi utilizat pentru a satisface orice client care vine la restaurant în momentele din intervalul [i, i + min(t, rezistenţă{~aliment~}))$
* $În caz că există mai multe soluţii care aduc profitul maxim, se poate afişa orice soluţie.$
* $Subtask **{%{color:#4C7D63}Rotten (Dosar +penal+ pentru încălcarea normelor sanitare)%}** - 10 puncte (testele 1-2): N * K &le; 100$
* $Subtask **{%{color:red}Raw (Toxiinfecţie alimentară)%}** - 15 puncte (testele 3-5): N * K &le; 500, N &le; 100$
* $Subtask **Burnt (Dezgustător)** - 15 puncte (testele 6-8): N * K &le; 2 * 10^4^, N &le; 4000$
* $Subtask **{%{color:#875D48}Well done (aproape OK, să zicem)%}** - 30 puncte (testele 9-14): N * K &le; 2 * 10^5$
* $Subtask **{%{color:#BA5353}Medium rare (Perfect)%}** - 30 puncte (testele 15-20): N * K &le; 2 * 10^6$
h2. Exemplu
table(example). |_. gordonramsay.in |_. gordonramsay.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 12 3
2 1 1 1 2 1 1 1 2 3 1 1
2 8 5
7 15 11
2 3 2
| 70
4
3 1 0
|
h3. Explicaţie
...
Blatmobilul aduce provizii de 3 ori (în momentele $0, 4, 8$), deci Semicerc şi Giotozila vor plăti $3 * (cost{~1~} * x{~1~} + cost{~2~} * x{~2~} + cost{~3~} * x{~3~}) = 3 * (2 * 3 + 7 * 1 + 2 * 0) = 39$ $JC$.
Din primul aliment vom avea 3 bucăţi care vor fi valabile în toate momentele din intervalul $[0, 4)$ (ar fi fost intervalul $[0, 5)$, dar la momentul $4$ vine din nou blatmobilul şi se goleşte frigiderul), 3 bucăţi care vor fi valabile în toate momentele din intervalul $[4, 8)$ şi 3 bucăţi care vor fi valabile în toate momentele din intervalul $[8, 12)$. Cu primele 3 bucăţi putem satisface comenzile din momentele $1, 2, 3$, cu următoarele 3 bucăţi comenzile $5, 6, 7$, iar cu ultimele 3 bucăţi satisfacem comenzile $10, 11$, în total 8 comenzi.
Din al doilea aliment vom avea o bucată valabilă în intervalul $[0, 4)$, o bucată valabilă în intervalul $[4, 8)$ si o bucată valabilă în intervalul $[8, 12)$. Cu toate aceste bucăţi satisfacem toate comenzile din momentele $0, 4, 8$, în total 3 comenzi.
Profitul total o să fie deci $8 * profit{~1~} + 3 * profit{~2~} + 0 * profit{~3~} - 39 = 8 * 8 + 3 * 15 + 0 - 39 = 70$ $JC$.
{${**Observaţie:**}$} dacă am fi avut $x3 = 1$, am fi avut o bucată valabilă în intervalul $[0, 2)$ (după 2 ore, al treila aliment expiră), o bucată valabilă în intervalul $[4, 6)$ si o bucată valabilă în intervalul $[8, 10)$.
== include(page="template/taskfooter" task_id="gordonramsay") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.