Mai intai trebuie sa te autentifici.
Cod sursa(job #200470)
Utilizator | Data | 24 iulie 2008 10:05:38 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include<stdio.h>
int g,w,c,e,a[1000010],ws,ws1,ab;
int i,j,r=2100000;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&g,&w);
for(i=1;i<1000010;++i)
a[i]=2100000;
for(i=0;i<g;++i)
{
scanf("%d%d",&e,&c);
ws=ws1;
for(j=ws;j>=0;j--)
{
if(a[j]!=2100000)
{
if(a[j]+c<a[j+e])
a[j+e]=a[j]+c;
if(j+e>ws1)
ws1=j+e;
if(ws1>ab)
ab=ws1;
if(ws1>w)
ws1=w;
}
}
}
if(ab>=w)
{
for(i=w;i<=ab;++i)
{
if(a[i]!=2100000)
{
if(a[i]<r)
r=a[i];
}
}
printf("%d\n",r);
}
else
printf("-1\n");
return 0;
}