Pagini recente » Cod sursa (job #605462) | Cod sursa (job #3160974) | Cod sursa (job #606595) | Cod sursa (job #1708373)
#include<cstdio>
#include<algorithm>
using namespace std;
int g,n,e[1005],c[1005],v[5005],minim=999999999,energie,s;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&g);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&e[i],&c[i]);
s+=e[i];
}
if (s<g)
{
printf("-1\n");
return 0;
}
v[0]=0;
for(int i=1;i<=g;i++) v[i]=-1;
int maxim=0;
for(int i=0;i<g;i++)
{
if(v[i]!=(-1))
{
for(int j=1;j<=n;j++)
{
if ((i+e[j])<g && (v[i+e[j]]==(-1) || ((v[i]+c[j])<v[i+e[j]])))
{
v[i+e[j]]=(v[i]+c[j]);
// if((i+e[j])>maxim) maxim=(i+e[j]);
}
else
if((i+e[j])>=g)
{
if ((v[i]+c[j])<minim)
{
minim=(v[i]+c[j]);
}
}
}
}
}
printf("%d\n",minim);
return 0;
}