Cod sursa(job #716774)
| Utilizator | Data | 19 martie 2012 11:26:04 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include <fstream>
#include <cstring>
#define MAXN 10010
using namespace std;
int d1[MAXN],d2[MAXN],w,g,i,j,n,p,maxim=0;
int main()
{
ifstream fi("rucsac.in");
ofstream fo("rucsac.out");
fi>>n>>g;
for(i=1;i<=n;i++)
{
fi>>w>>p;
for(j=0;j<=g;j++)
if(j+w<=g and d1[j]+p>d2[j+w]) {d2[j+w]=d1[j]+p; if(maxim<d2[j+w]) maxim=d2[j+w]; }
memcpy(d1,d2,sizeof(d2));
}
fo<<maxim<<"\n";
return 0;
}
