Cod sursa(job #788339)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 14 septembrie 2012 15:26:15
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#define W 5001
#define N 1001
#define inf 1999999999
using namespace std;
int n,w,e[N],c[N],cost[2*W],rez;
inline int min(int x,int y)
{
if(x<y)return x; else return y; return 0;
}
void read()
{ int i;
freopen("energii.in","r",stdin); scanf("%d\n%d\n",&n,&w);
for(i=1;i<=n;++i)
    scanf("%d %d\n",&e[i],&c[i]);
fclose(stdin);
}
void init()
{ int i;
for(i=1;i<=2*w;++i)
    cost[i]=inf;
}
void solve()
{ int i,j;
init();
for(i=1;i<=n;++i)
    for(j=2*w;j>=e[i];--j)
        cost[j]=min(cost[j],cost[j-e[i]]+c[i]);

}
void write()
{ int i;
freopen("energii.out","w",stdout);
for(i=w;i<=2*w;++i)
    rez=min(rez,cost[i]);
if(rez==inf)printf("%d",-1);
 else printf("%d",rez);
fclose(stdout);
}
int main()
{
read();
rez=inf;
solve();
write();
return 0;
}
#undef W
#undef inf
#undef N