Pagini recente » Cod sursa (job #973033) | Cod sursa (job #982379) | Cod sursa (job #1633349) | Cod sursa (job #2043281) | Cod sursa (job #317517)
Cod sursa(job #317517)
#include <stdio.h>
#define N 15001
#define M 10001
int sum[N];
int cost[M],gen[M];
int n,w;
int main ()
{int i,j,min;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d",&n,&w);
for (i=0;i<n;i++)
{scanf("%d %d",&gen[i],&cost[i]);
}
for(i=1;i<=w;i++)sum[i]=100000000;
for (j=0;j<n;j++)
{for (i=w-1;i>=1;i--)
{if(sum[i]!=0)
{if(i+gen[j]<w)
{if(sum[i+gen[j]]==0||sum[i+gen[j]]>sum[i]+cost[j])
{sum[i+gen[j]]=sum[i]+cost[j];
}
}
else
{if(sum[w]==0||sum[w]>sum[i]+cost[j])
{sum[w]=sum[i]+cost[j];
}
}
}
}
if(cost[j]<w)
{if(sum[gen[j]]==0||sum[gen[j]]>cost[j])
{sum[gen[j]]=cost[j];
}
}
else
{if(sum[w]==0||sum[w]>cost[j])
{sum[w]=cost[j];
}
}
}
if(sum[w]==100000000)printf("-1");
else printf("%d ",sum[w]);
return 0;
}