Cod sursa(job #891549)
Utilizator | Alexandru Dascalu adascalu | Data | 25 februarie 2013 17:44:56 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#include<algorithm>
#define MAXN 5001
#define MAXG 10001
using namespace std;
unsigned short int w[MAXN],p[MAXN];
int a[MAXN][MAXG];
int main()
{
unsigned short int n,gr,i,cw;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
f>>n>>gr;
for(i=1;i<=n;i++)
f>>w[i]>>p[i];
for(i=1;i<=n;i++)
for(cw=1;cw<=gr;cw++)
a[i][cw]=max(a[i-1][cw],a[i-1][cw-w[i]]+p[i]);
g<<a[n][gr];
f.close();
g.close();
return 0;
}