Pagini recente » Cod sursa (job #2203340) | Cod sursa (job #261652) | Cod sursa (job #2313069) | Cod sursa (job #714936) | Cod sursa (job #1087688)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int n,g,w[1005], c[1005],d[1005][10005],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 {
if (s>10000)
s=10000;
for (j=0;j<=s;j++)
d[1][j]=s1;
d[1][w[1]]=c[1];
for (i=2;i<=n;i++) {
for (j=0;j<=s;j++)
if (w[i]<j)
d[i][j] = min (d[i-1][j], d[i-1][j-w[i]]+c[i]);
else
if (j==w[i])
d[i][j]=min (c[i],d[i-1][j]);
else
d[i][j] = d[i-1][j];
}
minim=s1;
for (i=e;i<=s;i++)
if (d[n][i]<minim)
minim=d[n][i];
fout<<minim<<"\n";
}
return 0;
}