Cod sursa(job #1185929)
Utilizator | Preda Armand armandpreda | Data | 17 mai 2014 11:20:04 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <cstdio>
#define LIM 50000000
using namespace std;
int d[LIM+10];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,i,j,w,p,stop=0;
scanf("%d%d",&n,&g);
d[0]=0;
for(i=1;i<=LIM;++i)
d[i]=LIM;
for(i=1;i<=n;++i)
{
scanf("%d%d",&w,&p);
stop+=p;
for(j=stop;j>=0;--j)
if(d[j]+w<d[j+p])
d[j+p]=d[j]+w;
}
for(i=stop;i>=1;--i)
if(d[i]<=g)
{
printf("%d",i);
return 0;
}
}