Fişierul intrare/ieşire:popcorn.in, popcorn.outSursăLot 2017 Baraj 2
AutorLucian BicsiAdăugată deeudanipEugenie Daniel Posdarascu eudanip
Timp execuţie pe test3.5 secLimită de memorie262144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

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.

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!

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.

Date de ieşire

Fişierul popcorn.out va conţine un singur număr natural reprezentând numărul maxim de floricele comestibile care se poate obţine.

Restricţii

  • 1 ≤ M ≤ N ≤ 200 000
  • 1 ≤ A[i] < B[i] ≤ 200 000
  • Numărul total de floricele nu depăşeşte 109
  • Unele pungi pot fi goale!
  • 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
  • Pentru alte 10 puncte: X ≤ 50 000, M = 3
  • Pentru alte 20 de puncte: X ≤ 50 000, M ≤ 20
  • Pentru alte 15 puncte: X ≤ 200 000, M ≤ 50
  • Pentru alte 15 puncte: M ≤ X ≤ 50 000
  • Pentru restul de 10 puncte: restricţiile originale

Exemplu

popcorn.inpopcorn.outExplicaţie
5 2
2 4 3
1 5 6
4 8 10
7 8 2
10 11 2
21
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.
3 3
1 2 2
2 3 3
1 3 5
10
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ă.
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?