Pagini recente » Cod sursa (job #1418569) | Cod sursa (job #2051730) | Cod sursa (job #866175) | Cod sursa (job #340403) | Cod sursa (job #792240)
Cod sursa(job #792240)
#include <iostream>
#include <stdio.h>
using namespace std;
#define inf 0x7fffFFFF
int E[1001];
int C[1001];
int cost[2*10001];
unsigned int cmin = -1;
#define min(a,b) (((a) < (b)) ? (a) : (b))
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,i,j;
scanf("%d%d",&g,&w);
for(i=1;i<=g;++i)
scanf("%d%d",&E[i],&C[i]);
for(j=2*w;j>=0;--j)
cost[j] = inf;
cost[0] = 0;
for(i=1;i<=g;++i)
{
for(j=0;j<=2*w - E[i];++j)
{
if(cost[j+E[i]] > cost[j] + C[i])
cost[j+E[i]] = cost[j] + C[i];
}
}
for(j=w;j<=2*w;++j)
cmin = min(cmin,cost[j]);
if(cmin < inf)
cout << cmin;
else
cout << -1;
return 0;
}