Pagini recente » Cod sursa (job #2007404) | Cod sursa (job #1279525) | Cod sursa (job #2236812) | Cod sursa (job #395936)
Cod sursa(job #395936)
#include<stdio.h>
#define Gmax 1001
#define Nmax 5001
#define inf 11000
int main()
{freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,e[Gmax],c[Gmax],v[Nmax];
scanf("%d %d",&g,&w);
int i;
for(i=1;i<=w;i++)
v[i]=inf;
for(i=1;i<=g;i++)
scanf("%d %d",&e[i],&c[i]);
int j;
for(i=1;i<=g;i++)
{for(j=w;j>0;j--)
if(v[j]!=0)
if(j+e[i]>=w)
{if(v[j]+c[i]<v[w])
v[w]=v[j]+c[i];}
else if(v[j+e[i]]>v[j]+c[i])
v[j+e[i]]=v[j]+c[i];
if(e[i]>=w)
{if(c[i]<v[w]) v[w]=c[i];}
else if(v[e[i]]>c[i])
v[e[i]]=c[i];
}
if(v[w]==inf)
printf("-1\n");
else printf("%d",v[w]);
fclose(stdin);
fclose(stdout);
return 0;
}