Pagini recente » Cod sursa (job #208963) | Cod sursa (job #453655) | Cod sursa (job #1869944) | Cod sursa (job #328532) | Cod sursa (job #1875844)
#include <fstream>
#include <limits.h>
#define MAX_EN 5000
using namespace std;
int Gen_nr, En_need;
int Energy[MAX_EN + 1];
int En_max;
int sol;
int main(){
ifstream fin("energii.in");
ofstream fout("energii.out");
int i, j;
int En, Cost;
fin>>Gen_nr>>En_need;
Energy[0] = 1;
for (i = 1; i <= Gen_nr; i++) {
fin>>En>>Cost;
for (j = En_max; j >= 0; j--) {
if (Energy[j]) {
if (j + En > En_need) {
if (Energy[En_need] > Energy[j] + Cost || Energy[En_need] == 0) {
Energy[En_need] = Energy[j] + Cost;
}
} else {
if (Energy[j + En] > Energy[j] + Cost || Energy[j + En] == 0) {
Energy[j + En] = Energy[j] + Cost;
}
}
if (j + En > En_max) {
if (j + En >= En_need)
En_max = En_need;
else
En_max = j + En;
}
}
}
}
if (Energy[En_need] == 0)
fout<<"-1"<<'\n';
else
fout<<Energy[En_need] - 1<<'\n';
fin.close();
fout.close();
return 0;
}