Pagini recente » Cod sursa (job #2545128) | Cod sursa (job #3232724) | Cod sursa (job #2742113) | Cod sursa (job #590281) | Cod sursa (job #495358)
Cod sursa(job #495358)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define maxs 10001
struct rr{
int c;
int e;
};
struct pos{
int p;
int c;
};
int msp(pos a, pos b){
return a.c<b.c;
};
pos sol[maxs];
rr gen[1010];
int G, W, i,j,e,c;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&G);
scanf("%d",&W);
sol[0].p=1;
for(i=1;i<=maxs;i++){
sol[i].c=32000;
}
for(i=1;i<=G;i++){
scanf("%d%d",&e,&c);
//printf("%d %d\n",gen[3].c,j);
for(j=maxs;j>=0;j--){
//printf("%d %d\n",gen[3].c,j);
if(sol[j].p==1 || j+e<=maxs){
sol[j+e].p=1;
if(sol[j].c+c<sol[j+e].c){
sol[j+e].c=sol[j].c+c;
//printf("%d %d\n",sol[j+gen[i].e].c,gen[i].c);
}
}
}
}
sort(sol+W,sol+maxs+1,msp);
int s=0;
for(i=W; i<=maxs;i++){
if(sol[i].p==1){
printf("%d ",sol[i].c);
return 0;
}
}
printf("-1");
return 0;
}