Cod sursa(job #1151750)
Utilizator | Data | 24 martie 2014 12:43:45 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
long long n,m,i,j,gm,rez,t,gc,k,l,a[10002],b[10002];
int main()
{
f>>n>>gm;
for(t=1;t<=n;t++)
{
f>>gc>>k;
a[gc]=k;
for(j=1;j<=gm;j++)
{
if(b[j]!=0&&j+gc<=gm)
{
a[j+gc]=max(b[j]+k,a[j+gc]);
if(a[j]==0) a[j]=b[j];
else a[j]=max(b[j],a[j]);
}
if(a[j]>rez) rez=a[j];
b[j]=a[j];
}
}
g<<rez;
return 0;
}