Cod sursa(job #3342759)
| Utilizator | Data | 25 februarie 2026 17:03:42 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 50 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
const int NMAX=5000,
GMAX=10000;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct obiect{
int g,v;
};
int N,G;
int M[NMAX+1][GMAX+1];
obiect a[NMAX+1];
int main()
{
cin >> N >> G;
for(int i=1;i<=N;i++)
cin >> a[i].g >> a[i].v;
//
for(int i=1;i<=N;i++){
for(int j=0;j<=G;j++){
if(a[i].g>j) M[i][j]=M[i-1][j];
else M[i][j]=max(M[i-1][j],M[i-1][j-a[i].g]+a[i].v);
}
}
cout << M[N][G];
return 0;
}
