Pagini recente » Cod sursa (job #1343749) | Cod sursa (job #2172521) | Cod sursa (job #1572484) | Cod sursa (job #2080046) | Cod sursa (job #3199892)
/*#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int max_G = 1001;
const int max_W = 5001;
const int bigNumber = 1e9;
int c_eng[max_W];
int EG[max_G];
int CG[max_G];
int main() {
int G, W;
f>>G>>W;
for (int i = 0; i < G; i++) {
f >> EG[i];
f >> CG[i];
}
for (int i = 0; i <= W; i++) {
c_eng[i] = bigNumber;
}
c_eng[0] = 0;
for (int i = 0; i < G; i++) {
for (int j = EG[i]; j <= W; j++) {
if (c_eng[j - EG[i]] + CG[i] < c_eng[j]) {
c_eng[j] = c_eng[j - EG[i]] + CG[i];
}
}
}
if (c_eng[W] != bigNumber) {
g << c_eng[W];
}
else {
g << "-1";
}
return 0;
}
*/
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int max_G = 1001;
const int max_W = 5001;
const int bigNumber = 1e9 + 7;
int c_eng[max_W];
int EG[max_G];
int CG[max_G];
int main() {
int G, W;
f >> G >> W;
for (int i = 0; i < G; i++) {
f >> EG[i] >> CG[i];
}
for (int i = 0; i <= W; i++) {
c_eng[i] = bigNumber;
}
c_eng[0] = 0;
for (int i = 0; i < G; i++) {
for (int j = W; j >= EG[i]; j--) {
if (c_eng[j - EG[i]] != bigNumber && c_eng[j - EG[i]] + CG[i] < c_eng[j]) {
c_eng[j] = c_eng[j - EG[i]] + CG[i];
}
}
}
int minCost = bigNumber;
for (int i = W; i <= W; i++) {
if (c_eng[i] < minCost) {
minCost = c_eng[i];
}
}
if (minCost != bigNumber) {
g << minCost;
} else {
g << "-1";
}
f.close();
g.close();
return 0;
}