Pagini recente » Cod sursa (job #2206069) | Cod sursa (job #576084) | Cod sursa (job #27086) | Clasament terente.1 | Cod sursa (job #1961098)
#include <cstdio>
using namespace std;
int c[1006];
int d[1006];
int a[15000000];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,i,dre,i2,minim;
scanf("%d%d",&g,&w);
minim=2000000000;
for(i=1;i<15000000;i++)
a[i]=-2;
for(i=1;i<=g;i++)
scanf("%d%d",&c[i],&d[i]);
dre=0;
for(i=1;i<=g;i++)
{
for(i2=dre;i2>-1;i2--)
{
if(a[i2]!=-2)
{
if(i2+c[i]>=w)
{
if(a[i2]+d[i]<minim)
{
minim=a[i2]+d[i];
a[i2+c[i]]=a[i2]+d[i];
}
}
else
{
if(a[i2+c[i]]==-2)
a[i2+c[i]]=a[i2]+d[i];
else
if(a[i2]+d[i]<a[i2+c[i]])
a[i2+c[i]]=a[i2]+d[i];
}
}
}
if(dre<w)
dre=dre+c[i];
}
if(minim!=2000000000)
printf("%d",minim);
else
printf("-1");
return 0;
}