Pagini recente » Cod sursa (job #2154807) | Cod sursa (job #1030648) | Cod sursa (job #2047673) | Cod sursa (job #2452879) | Cod sursa (job #1324098)
#include <fstream>
using namespace std;
const int kInf = 1000000001, kMaxG = 10005, kMaxE = 15005;
int eg[kMaxG], cg[kMaxG], v[kMaxE], g, w, sol = kInf;
void Citire(){
ifstream in("energii.in");
int i;
in >> g >> w;
for (i = 1; i <= g; ++i)
in >> eg[i] >> cg[i];
in.close();
}
void Initializare() {
int i;
for (i = 1; i < kMaxE ; ++i)
v[i] = kInf;
}
void Dinamica() {
int i, j;
for (i = 1; i <= g; ++i)
for (j = w; j >= 0; --j)
v[j + eg[i]] = min(v[j] + cg[i], v[j + eg[i]]);
}
void ObtSol() {
int i;
for (i = w; i < kMaxE; i++)
sol = min (sol, v[i]);
}
void Solve() {
Initializare();
Dinamica();
ObtSol();
}
void Afisare() {
ofstream out("energii.out");
if (sol == kInf)
out << "-1" << '\n';
else
out << sol << '\n';
out.close();
}
int main() {
Citire();
Solve();
Afisare();
return 0;
}