Pagini recente » Cod sursa (job #66716) | Cod sursa (job #374570) | Cod sursa (job #817857) | Cod sursa (job #1385910) | Cod sursa (job #1331929)
#include <fstream>
#define nmax 1050
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int nrGen, eNec, cantE[nmax], pret[nmax], PD[3][nmax];
inline int minim(int x, int y){
return x < y ? x : y;
}
int main()
{int i, l, j;
f >>nrGen >>eNec;
for(i = 1; i <= nrGen; ++i)
f>> cantE[i]>> pret[i];
l = 1;
for(i = 1; i <= eNec; ++i)
PD[l][i] = 5001;
for(j = 1; j <= nrGen; ++j, l = 1 - l){
for(i = 1; i <= eNec; ++i){
PD[1 - l][i] = PD[l][i];
if(cantE[j] >= i)
PD[1 - l][i] = minim(PD[1 - l][i], PD[l][i - cantE[j]] + pret[j]);
}
}
if(PD[l][eNec] != 5001) g << PD[l][eNec]<<'\n';
else g<< -1 <<'\n';
return 0;
}