Binary Robbery

Time limit: 0.15s Memory limit: 5MB Input: binary-robbery.in Output: binary-robbery.out

Cerință

Un hacker pe nume Marius încearcă să spargă baza de date secretă a Colegiului Național „Mihai Eminescu”. Baza de date este împărțită în mai multe tipuri de porțiuni de date.

Fiecare tip de date este caracterizat prin:

  • dimensiunea unei porțiuni (spațiul ocupat)
  • valoarea obținută pentru fiecare porțiune furată
  • numărul maxim de porțiuni disponibile.

Hackerul dispune de un dispozitiv cu o capacitate limitată de stocare de CC unități.

Se dă un parametru TT.

  • Dacă T=1T = 1, se cere să se determine dacă hackerul poate fura date astfel încât să ocupe exact CC unități de memorie.
  • Dacă T=2T = 2, se cere să se determine valoarea maximă totală care poate fi obținută fără a depăși capacitatea CC.

Date de intrare

Fișierul de intrare binaryrobbery.in conține:

Pe prima linie, un număr întreg TT (11 sau 22).
Pe a doua linie, două numere întregi NN și CC, reprezentând:

  • NN – numărul de tipuri de date,
  • CC – capacitatea dispozitivului.

Pe următoarele N linii se află câte trei numere întregi dd, vv, ff, unde:

  • dd = dimensiunea unei porțiuni,
  • vv = valoarea unei porțiuni,
  • ff = numărul maxim de porțiuni disponibile.

Date de ieșire

Fișierul de ieșire binaryrobbery.out va conține:

  • Dacă T=1T = 1, se va afișa DA sau NU.
  • Dacă T=2T = 2, se va afișa un singur număr întreg, reprezentând valoarea maximă.

Restricții și precizări

  • 1N1 0001 ≤ N ≤ 1 \ 000
  • 1C10 0001 ≤ C ≤ 10 \ 000
  • 1d,v10 0001 ≤ d, v ≤ 10 \ 000
  • 1f1 000 0001 ≤ f ≤ 1 \ 000 \ 000
# Punctaj Restricții
1 8 T=1T = 1, N20N ≤ 20, C200C ≤ 200, f20f ≤ 20
2 8 T=1T = 1, N100N ≤ 100, C1 000C ≤ 1 \ 000, f100f ≤ 100
3 9 T=1T = 1, N1 000N ≤ 1 \ 000, C10 000C ≤ 10 \ 000, f=1f = 1
4 10 T=1T = 1, fără restricții suplimentare
5 10 T=2T = 2, N20N ≤ 20, C200C ≤ 200, f20f ≤ 20
6 10 T=2T = 2, N100N ≤ 100, C1 000C ≤ 1 \ 000, f100f ≤ 100
7 12 T=2T = 2, f=1f = 1
8 13 T=2T = 2, toate valorile dd sunt egale cu 11
9 10 T=2T = 2, N300N ≤ 300, C10 000C ≤ 10 \ 000
10 10 fără restricții suplimentare

Exemplul 1

binary-robbery.in

1
2 7
3 10 2
2 5 3

binary-robbery.out

DA

Exemplul 2

binary-robbery.in

2
2 7
3 10 2
2 5 3

binary-robbery.out

20

Explicație

Se pot alege:

  • o porțiune de dimensiune 33, cu valoarea 1010;
  • două porțiuni de dimensiune 22, fiecare cu valoarea 55.

Dimensiunea totală este 77, iar valoarea totală este 2020.

Log in or sign up to be able to send submissions!