Pagini recente » Cod sursa (job #1772187) | Cod sursa (job #2176412)
#include <iostream>
#include <fstream>
using namespace std;
int e[1001],c[1002];
long long dold[17000],dnew[17001];
int main()
{
int g,w,j,i,wmax,maxx,minn;
ifstream cmin("energii.in");
ofstream cmout("energii.out");
cmin>>g>>w;
maxx=-100000;
minn=-1;
for(j=1;j<=g;++j){
cmin>>e[j]>>c[j];
if(e[j]>maxx){
maxx=e[j];
}
}
wmax=w+maxx;
for(j=0;j<=wmax;++j){
dold[j]=-1;
dnew[j]=-1;
}
dold[0]=0;
dnew[0]=0;
for(i=1;i<=g;++i){
/*
dnew[0]=0;
for(j=1;j<=wmax;++j){
dnew[j]=-1;
}*/
for(j=0;j<=w;++j){
if(dold[j]==-1){
dnew[j+e[i]]=dold[j+e[i]];
}
else if(dold[j+e[i]]==-1){
dnew[j+e[i]]=dold[j]+c[i];
}
else{
dnew[j+e[i]]=min(dold[j+e[i]],dold[j]+c[i]);
}
}
for(j=0;j<=wmax;++j){
dold[j]=dnew[j];
}
}
for(j=w;j<=wmax;++j){
if((dnew[j]<minn || minn==-1)&& dnew[j]!=-1){minn=dnew[j];}
}
cmout<<minn<<endl;
}