Cod sursa(job #3367636)

Utilizator gilbusJoita Cristian gilbus Data 9 octombrie 2026 12:04:28
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Value {
	int pret, greutate;
	float value;
	bool operator<(const Value& altul)const {
		return value < altul.value;
	}
};
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	freopen("rucsac.in", "r", stdin);
	freopen("rucsac.out", "w", stdout);
	int n, g, total = 0;
	cin >> n>>g;
	vector<Value>valoare(n);
	for (int i = 0; i < n; i++) {
		cin >> valoare[i].greutate>>valoare[i].pret;
		valoare[i].value = valoare[i].pret / valoare[i].greutate;
	}
	sort(valoare.begin(), valoare.end());
	for (int i = n - 1; i > 0; i--) {
		if (valoare[i].greutate < g) {
			total += valoare[i].pret;
			g -= valoare[i].greutate;
		}
		else {
			cout << total;
			break;
		}
	}
}