Pagini recente » Cod sursa (job #1828885) | Cod sursa (job #1756464) | Cod sursa (job #2728295) | Cod sursa (job #924929) | Cod sursa (job #1087682)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int n,g,w[1005], c[1005],d1[10000005],d2[10000005],i,j,minim,s,e,s1;
int main () {
fin>>n>>e;
for (i=1;i<=n;i++){
fin>>w[i]>>c[i];
s+=w[i];
s1+=c[i];
}
if (s<e)
fout<<"-1\n";
else
if (s==e)
fout<<s1<<"\n";
else {
for (j=0;j<=s;j++)
d1[j]=s1;
d1[w[1]]=c[1];
for (i=2;i<=n;i++) {
for (j=0;j<=s;j++)
if (w[i]<j)
d2[j] = min (d1[j], d1[j-w[i]]+c[i]);
else
if (j==w[i])
d2[j]=min (c[i],d1[j]);
else
d2[j] = d1[j];
for (j=0;j<=s;j++)
d1[j]=d2[j];
}
minim=s1;
for (i=e;i<=s;i++)
if (d1[i]<minim)
minim=d1[i];
fout<<minim<<"\n";
}
return 0;
}