Pagini recente » Cod sursa (job #2465945) | Cod sursa (job #177255) | Cod sursa (job #1539794) | Cod sursa (job #476538) | Cod sursa (job #923091)
Cod sursa(job #923091)
#include<fstream>
using namespace std;
#define BM 10005
#define BN 5005
#define per pair<int,int>
#define w first
#define p second
int pot[BM],gr[BM];
per a[BN];
int n,G;
int main (){
int i,j;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
f>>n>>G;
pot[0]=1;
for(i=1;i<=n;++i)f>>a[i].w>>a[i].p;
for(i=1;i<=n;++i)for(j=BM-5;j>=0;--j)if(pot[j]&&j+a[i].p<=BM-5){
if(pot[j+a[i].p])gr[j+a[i].p]=min(gr[j+a[i].p],gr[j]+a[i].w);
else if(gr[j]+a[i].w<=G)pot[j+a[i].p]=1,gr[j+a[i].p]=gr[j]+a[i].w;
}
for(j=BM-5;j;--j)if(pot[j]){
g<<j;
return 0;
}
return 0;
}