Pagini recente » Cod sursa (job #2858619) | Cod sursa (job #1944556) | Cod sursa (job #722932) | Cod sursa (job #491457) | Cod sursa (job #495331)
Cod sursa(job #495331)
#include <stdio.h>
#include <algorithm>
using namespace std;
struct rr{
int cost;
int en;
};
struct pos{
int p;
int cost;
};
int msp(pos a, pos b){
return a.cost<b.cost;
};
pos sol[10009];
rr gen[1010];
int G, W, i,j;
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<=10002;i++){
sol[i].cost=12000;
}
for(i=1;i<=G;i++){
scanf("%d%d",&gen[i].en,&gen[i].cost);
for(j=10002;j>=0;j--){
if(sol[j].p==1){
if(j+gen[i].en){
sol[j+gen[i].en].p=1;
if(sol[j].cost+gen[i].cost<sol[j+gen[i].en].cost){
sol[j+gen[i].en].cost=sol[j].cost+gen[i].cost;
}
}
}
}
}
sort(sol+W+1,sol+10001,msp);
int s=0;
for(i=W;s==0 && i<=10002;i++){
if(sol[i].p==1){
s=1;
printf("%d ",sol[i].cost);
}
}
if(s==0){
printf("-1");
}
return 0;
}