Pagini recente » Cod sursa (job #3168382) | Cod sursa (job #2226585) | Cod sursa (job #2792081) | Cod sursa (job #344652) | Cod sursa (job #1425197)
#include <fstream>
#include <cstring>
using namespace std;
static const int MAXN = 1001;
static const int MAXW = 5000;
int eg[MAXN], cg[MAXN];
int s[MAXW * 2];
int main() {
int g, w;
ifstream f("energii.in");
f >> g >> w;
for(int i = 0; i < g; i++) {
f >> eg[i] >> cg[i];
}
f.close();
memset(s, 0x3F, sizeof(s));
s[0] = 0;
for(int j = 0; j < g; j++)
for(int i = MAXW; i >= 0; i--)
s[i + eg[j]] = min(s[i] + cg[j], s[i + eg[j]]);
int ans = s[MAXW * 2 - 1];
for(int i = MAXW * 2 - 1; i >= w; i--) {
ans = min(ans, s[i]);
}
if(ans == s[MAXW * 2 - 1]) ans = -1;
ofstream fout("energii.out");
fout << ans << endl;
fout.close();
return 0;
}