Pagini recente » Cod sursa (job #2843941) | Cod sursa (job #1185442) | Cod sursa (job #1665070) | Cod sursa (job #1422590) | Cod sursa (job #2276956)
#include <fstream>
#include <limits.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int n, g, i, j, ok, minim, w[1005], p[1005], d[5005];
int main()
{
fin >> n >> g;
for (i=1; i<=n; i++){
fin >> w[i] >> p[i];
}
minim = INT_MAX;
ok = 0;
d[0] = 1;
for (i=1; i<=n; i++){
for (j=g; j>=0; j--){
if (d[j] != 0){
if (j + w[i] < g){
if(d[j+w[i]] == 0)
d[j+w[i]] = d[j]+p[i];
else
d[j+w[i]] = min(d[j+w[i]], d[j]+p[i]);
}
else{
minim = min(minim, d[j] + p[i]);
ok = 1;
}
}
}
}
if (ok == 1)
fout << minim - 1;
else
fout << "-1";
return 0;
}