Cod sursa(job #810136)
| Utilizator | Data | 9 noiembrie 2012 18:45:25 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include<cstdio>
#include<algorithm>
using namespace std;
int n,G,g,p,P[10001],i,j,s;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&G);
for(i=1;i<=n;i++)
{
scanf("%d%d",&g,&p);
if(G<g||!p)continue;
for(j=G;j>=g;j--)
if(P[j-g]) P[j]=max(P[j],P[j-g]+p);
P[g]=max(P[g],p);
}
for(i=1;i<=G;i++) s=max(s,P[i]);
printf("%d\n",s);
return 0;
}
