Pagini recente » Cod sursa (job #1649147) | Cod sursa (job #1293058) | Cod sursa (job #778930) | Cod sursa (job #2814344) | Cod sursa (job #2211874)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int gMax, n;
int costMax[3][10100], g[6000], val[6000];
void citire(){
in >> n >> gMax;
for(int i = 1; i <= n; i++){
in >> g[i] >> val[i];
}
}
void castigMaxim(){
for(int i = 1; i <= n; i++){
for(int j = 0; j <= gMax; j++){
int temp1 = costMax[1][j];
int temp2 = 0;
if(g[i] <= j){
temp2 = costMax[1][j - g[i]] + val[i];
}
costMax[2][j] = max(temp1, temp2);
}
for(int col = 1; col <= gMax; col++){
costMax[1][col] = costMax[2][col];
}
}
out << costMax[1][gMax];
}
int main() {
citire();
castigMaxim();
return 0;
}