Pagini recente » Cod sursa (job #36589) | Cod sursa (job #2550890) | Cod sursa (job #2706858) | Cod sursa (job #2297225) | Cod sursa (job #3127053)
#include <iostream>
#include <vector>
#include <map>
#include <cstring>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <set>
#include <unordered_map>
#include <stack>
#include <iomanip>
#include <random>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, maxWeight;
const int GMAX = 10010;
int maxProfit[GMAX], prevMaxProfit[GMAX];
int main() {
fin >> n >> maxWeight;
for (int i = 0; i < n; ++i) {
int weight, profit;
fin >> weight >> profit;
for (int j = weight; j <= maxWeight; ++j) {
maxProfit[j] = max(prevMaxProfit[j], prevMaxProfit[j - weight] + profit);
}
for (int k = 0; k <= maxWeight; ++k) {
prevMaxProfit[k] = maxProfit[k];
}
}
fout << maxProfit[maxWeight];
return 0;
}