Pagini recente » Cod sursa (job #1772501) | Cod sursa (job #828284) | Cod sursa (job #622944) | Cod sursa (job #1464376) | Cod sursa (job #3354253)
#include <iostream>
#include <vector>
using namespace std;
int main() {
int weight, n;
cin >> n >> weight;
vector<int> w(n), value(n);
for (int i = 0; i < n; i++) {
cin >> w[i] >> value[i];
}
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n ; j++) {
if (value[i] < value[j]) {
int tmp = value[j];
value[j] = value[i];
value[i] = tmp;
int tmp2 = w[j];
w[j] = w[i];
w[i] = tmp2;
}
if (value[i] == value[j]) {
if (w[i] > w[j]) {
int tmp = value[j];
value[j] = value[i];
value[i] = tmp;
int tmp2 = w[j];
w[j] = w[i];
w[i] = tmp2;
}
}
}
}
int backpack_weight = 0, sum = 0;
vector<int> dp(n);
for (int i = 0; i < n; i++) {
if (backpack_weight + w[i] <= weight) {
sum += value[i];
backpack_weight += w[i];
}
}
cout << sum << "\n";
return 0;
}