Diferente pentru problema/popcorn intre reviziile #2 si #9

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="popcorn") ==
Cu toţii ştim că popcornul este o adevărată delicatesă culinară. În pregătirile tale pentru lotul de anul acesta (şi pentru petrecerile de după), ai făcut comandă de $N$ tipuri de floricele de porumb pentru microunde. Fiecare tip are asociate $3$ valori:
$A[ i ] =$ Timpul (în secunde) la care orice floricică de acel tip “pocneşte”;
$B[ i ] =$ Timpul (în secunde) la care orice floricică de acel tip “se arde”;
$C[ i ] =$ Cantitatea (în floricele) a respectivului tip.
Mai ai la dispoziţie $M$ pungi pentru floricele de unică folosinţă de capacitate foarte mare (practic, infinită) şi un cuptor cu microunde. Cum, bineînţeles, nimănui nu îi plac floricelele nefăcute sau cele arse, îţi doreşti să le partiţionezi convenabil în cele M pungi şi apoi să le introduci pe rând în cuptorul cu microunde, setându-i un timp de preparare $prep[ i ]$ corespunzător, astfel încât după cele $M$ tranşe să obţii cât mai multe floricele comestibile.
* $A[i] =$ Timpul (în secunde) la care orice floricică de acel tip “pocneşte”
* $B[i] =$ Timpul (în secunde) la care orice floricică de acel tip “se arde”
* $C[i] =$ Cantitatea (în floricele) a respectivului tip
Formal, o floricică de tipul $i$ introdusă în punga $j$, setată la timpul (în secunde) de preparare $prep[ j ]$ este comestibilă dacă şi numai dacă $A[ i ] ≤ prep[ j ] < B[ i ].$
Mai ai la dispoziţie $M$ pungi pentru floricele de unică folosinţă de capacitate foarte mare (practic, infinită) şi un cuptor cu microunde. Cum, bineînţeles, nimănui nu îi plac floricelele nefăcute sau cele arse, îţi doreşti să le partiţionezi convenabil în cele M pungi şi apoi să le introduci pe rând în cuptorul cu microunde, setându-i un timp de preparare $prep[i]$ corespunzător, astfel încât după cele $M$ tranşe să obţii cât mai multe floricele comestibile.
 
Formal, o floricică de tipul $i$ introdusă în punga $j$, setată la timpul (în secunde) de preparare $prep[j]$ este comestibilă dacă şi numai dacă $A[i] ≤ prep[j] < B[i].$
Fiind date cele $N$ tipuri de floricele şi numărul de pungi disponibile, trebuie să găseşti o partiţie convenabilă şi timpii optimi de preparare pentru fiecare pungă, astfel încât la final să obţii numărul maxim de floricele comestibile, pe care să îl afişezi în fişierul de ieşire. Prea uşor!
h2. Date de intrare
Fişierul de intrare $popcorn.in$ conţine pe prima linie numerele naturale $N$ şi $M$, separate printr-un spaţiu, cu semnificaţia din enunţ. Pe următoarele $N$ linii se vor afla valorile $A[ i ],  B[ i ],  C[ i ]$ corespunzătoare fiecărui tip de floricele.
Fişierul de intrare $popcorn.in$ conţine pe prima linie numerele naturale $N$ şi $M$, separate printr-un spaţiu, cu semnificaţia din enunţ. Pe următoarele $N$ linii se vor afla valorile $A[i],  B[i],  C[i]$ corespunzătoare fiecărui tip de floricele.
h2. Date de ieşire
h2. Restricţii
* $1 ≤ M ≤ N ≤ 200 000$
* $1 ≤ A[ i ] < B[ i ] ≤ 200 000$
* Numărul total de floricele nu depăşeşte $109$
* $1 ≤ A[i] < B[i] ≤ 200 000$
* Numărul total de floricele nu depăşeşte $10^9^$
* Unele pungi pot fi goale!
* $X = max{N, B[ 1 ], B[ 2 ], …, B[ N ]}$
* $X = max{N, B[ 1 ], B[ 2 ], …, B[N]}$
* Pentru $10$ puncte: $X ≤ 550, M ≤ 100$
* Pentru alte $10$ puncte: $X ≤ 3 000, M ≤ 50$
* Pentru alte $10$ puncte: $M ≤ X ≤ 3 000$
h2. Exemplu
table(example). |_. popcorn.in |_. popcorn.out |
table(example). |_. popcorn.in |_. popcorn.out |_. Explicaţie |
|5 2
2 4 3
1 5 6
7 8 2
10 11 2
|21
|
 
h3. Explicaţie
 
Avem 5 tipuri de floricele şi 2 pungi disponibile.
 
| Avem 5 tipuri de floricele şi 2 pungi disponibile.
Una din soluţiile posibile este:
Punga 1 va conţine tipurile 1 şi 2 şi va fi preparată la timpul 3.
Punga 2 va conţine tipurile 3, 4, 5 şi va fi preparată la timpul 7.
 
Toate tipurile de floricele vor fi preparate cu succes, în afară de tipul 5, care vor rămâne în stadiul de boabe.
 
 
table(example). |_. popcorn.in |_. popcorn.out |
|
|3 3
1 2 2
2 3 3
1 3 5
|10
|
 
h3. Explicatie
 
Putem alege pungile astfel:
|Putem alege pungile astfel:
Punga 1 va conţine tipurile 1, 3 şi va fi preparată la timpul 1.
Punga 2 va conţine tipul 2 şi va fi preparată la timpul 2.
Punga 3 va fi goală.
 
|
== include(page="template/taskfooter" task_id="popcorn") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.