Pagini recente » Cod sursa (job #1158279) | Rating Dospinescu Stefan (stef_09_50) | Cod sursa (job #1234917) | Cod sursa (job #38733) | Cod sursa (job #871132)
Cod sursa(job #871132)
#include <fstream>
#define minim(a,b) (a<b)?a:b
using namespace std;
ifstream f("energii.in");
ofstream output("energii.out");
int g,energmax,i,j;
int energ,cost;
int a[100000]; // a[energie] = cost
int iesit = 2000000000;
int main() {
f >> g >> energmax;
for (i=1;i<=g;i++) {
f >> cost >> energ;
for (j=energmax; j>= 1 ; j--) {
if (a[j]!= 0) {
if (a[j+energ] < energmax) {
a[j+energ] = minim(a[j+energ],a[j]+cost);
} else {
iesit = minim(iesit,a[j]+cost);
}
}
}
if (a[energ] != 0) a[energ] = min(a[energ],cost);
else a[energ] = cost;
}
cost = 2000000000;
for (i=energmax;i<=90000;i++) {
if (a[i]!= 0) iesit = minim(iesit,i);
}
if (cost > 0) output << iesit;
else output << -1;
return 0;
}