Cod sursa(job #681647)
| Utilizator | Data | 17 februarie 2012 16:46:28 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include<fstream>
using namespace std;
int pr[5003],gr[5003];
int n,k,i,j;
int a[10001],b[10001];
void copy()
{
int l;
for(l=1;l<=n;l++) a[l]=b[l];
}
int main()
{
ifstream f("rucsac.in");
ofstream g("rucsac.out");
f>>n>>k;
for(i=1;i<=n;i++) f>>gr[i]>>pr[i];
for(i=1;i<=n;i++)
{
for(j=1;j<=k;j++)
{
if(gr[i]>j)
b[j]=a[j];
else b[j]=max(a[j],a[j-gr[i]]+pr[i]);
}
copy();
}
g<<b[k];
f.close();
g.close();
return 0;
}
