Cod sursa(job #2019239)
Utilizator | Data | 7 septembrie 2017 12:54:03 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n,G,i,s,l,g[5001],c[5001],d[2][10001];
int main()
{
cin>>n>>G;
for(i=1;i<=n;i++)
cin>>g[i]>>c[i];
for(i=1;i<=n;i++)
for(s=1;s<=G;s++)
{
l=i%2;
d[1-l][s]=d[l][s];
if(g[i]<=s)
d[1-l][s]=max(d[1-l][s],d[l][s-g[i]]+c[i]);
}
cout<<d[1-n%2][G];
return 0;
}