Cod sursa(job #822898)
| Utilizator | Data | 24 noiembrie 2012 10:38:53 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
int i,n,v[10010],P[10010],j,k,p,g,G;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&G);
v[0]=1;
for(i=1;i<=n;i++)
{
scanf("%d%d",&g,&p);
for(j=G,k=G-g;k>=0;j--,k--)
if(v[k]&&P[j]<P[k]+p)
{
v[j]=1;
P[j]=P[k]+p;
}
}
for(i=1,p=0;i<=G;i++)
p=max(P[i],p);
printf("%d",p);
return 0;
}
