Pagini recente » Cod sursa (job #3202450) | Cod sursa (job #183662) | Cod sursa (job #2594254) | Cod sursa (job #1451127) | Cod sursa (job #316647)
Cod sursa(job #316647)
#include <stdio.h>
int d[10010],cost[1005],ener[1005];
int cmin = 9999999,G,W,i,j;
int min (int a,int b)
{
if (a>b && b) return b;
return a;
}
int main ()
{
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
scanf ("%d %d",&G,&W);
for (i=1;i<=G;i++) scanf ("%d %d",&ener[i],&cost[i]);
for (i=1;i<=G;i++){
for (j=10000;j>=1;j--)
if ( d[j] && j+ener[i]<=10000 ) d[j+ener[i]] = min(d[j]+cost[i],d[j+ener[i]]);
d[ener[i]] = min(cost[i],d[ener[i]]);
}
for (i=W;i<=10000;i++) if (d[i] && d[i]<cmin) cmin = d[i];
if (W==0) printf ("0");
else if (cmin==9999999) printf ("-1");
else printf ("%d",cmin);
return 0;
}