Pagini recente » Cod sursa (job #657147) | Cod sursa (job #276506) | Cod sursa (job #1134914) | Cod sursa (job #1222640) | Cod sursa (job #962561)
Cod sursa(job #962561)
#include <iostream>
#include <fstream>
using namespace std;
int n, W, w[1001], c[1001], f[5001], g[5001], minCost;
void read(){
ifstream f("energii.in");
f >> n;
f >> W;
for (int i = 0; i < n; i++){
f >> w[i];
f >> c[i];
}
f.close();
}
void write(){
ofstream of("energii.out");
of << minCost;
of.close();
}
int knapsack(){
f[0] = 0; g[0] = true;
for (int i = 0; i < n; i++)
for (int j = 0; j < W; j ++)
if (g[j]) {
g[j + w[i]] = true;
if (f[j + w[i]] == 0 || f[j + w[i]] > f[j] + c[i])
f[j + w[i]]=f[j] + c[i];
}
if (g[W]) return f[W];
else return -1;
}
int main(){
read();
minCost = knapsack();
write();
return 0;
}