Pagini recente » Cod sursa (job #296295) | Cod sursa (job #2947663) | Cod sursa (job #499252) | Cod sursa (job #2042551) | Cod sursa (job #391626)
Cod sursa(job #391626)
#include<stdio.h>
const char in[]="energii.in";
const char out[]="energii.out";
const int INF=2e8;
int v[5005], c[1005], e[1005], g, w, i, j;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d %d", &g, &w);
for(i=1;i<=g;++i)
scanf("%d %d", &e[i], &c[i]);
for(i=1;i<=w;++i)v[i]=INF;
for(i=1;i<=g;++i)
for(j=w;j>=1;--j)
{
if(v[j]!=INF)
if(j+e[i]>w)
{if(v[j]+c[i]<v[w])v[w]=v[j]+c[j];}
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");return 0;}
else printf("%d", v[w]);
return 0;
}