Cod sursa(job #1679616)
| Utilizator | Data | 8 aprilie 2016 09:16:05 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("rucsac.in");
ofstream out("rucsac.out");
int n,G;
int v[10005];
struct obiect
{
int g,c;
};
obiect a[5005];
int main()
{
int i,j,maxim=0;
in>>n>>G;
for(i=1; i<=n; i++)
{
in>>a[i].g>>a[i].c;
}
for(i=1; i<=n; i++)
for(j=G-a[i].g ; j>=0; j--)
{
v[j+a[i].g]=max(v[j]+a[i].c , v[j+a[i].g ]);
if(v[j+a[i].g]>maxim)
maxim=v[j+a[i].g];
}
out<<maxim;
return 0;
}
