Cerința
Într-un magazin sunt n
obiecte; pentru fiecare se cunoaște greutatea G
și valoarea V
. Un hoț intră în magazin având un rucsac ce poate transporta o greutate maximă GMax
. El va fura anumite obiecte, astfel încât suma greutăților obiectelor furate să nu depășească GMax
.
Să se stabilească câștigul maxim pe care îl poate obține hoțul. Câștigul este egal cu suma valorilor obiectelor furate.
Date de intrare
Programul citește de la tastatură numerele naturale n GMax
, iar apoi n
perechi de valori G V
, reprezentând greutatea, respectiv valoarea fiecărui obiect.
Date de ieșire
Programul va afișa pe ecran numărul C
, reprezentând câștigul maxim pe care îl poate obține hoțul.
Restricții și precizări
1 ≤ n ≤ 1.000
;1 ≤ G, V, GMax ≤ 10.000
Exemplu
Intrare
5 20 2 3 4 5 5 8 3 4 9 10
Ieșire
26
Explicație
Hoțul va lua obiectele 1
, 2
, 3
și 5
, obținând un câștig de 26
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Rucsac1:
#include <iostream>
#include <algorithm>
using namespace std;
int n , GMax, greutate[5001], profit[5001];
int C[1001][10001];
int main()
{
cin >> n >> GMax;
for(int i = 1 ; i <= n ; i ++)
cin >> greutate[i] >> profit[i];
for(int i = 1 ; i <= n ; i ++)
{
for(int j = 1 ; j <= GMax ; j++)
if(greutate[i] > j)
C[i][j] = C[i-1][j];
else
C[i][j] = max(C[i-1][j], C[i-1][j-greutate[i]] + profit[i]);
}
cout << C[n][GMax];
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1886 Rucsac1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1886 Rucsac1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!