Pagini recente » Cod sursa (job #2050213) | Cod sursa (job #737636) | Cod sursa (job #1897409) | Cod sursa (job #2583106) | Cod sursa (job #2510882)
using namespace std;
#include<iostream>
#include<fstream>
#include<algorithm>
int n;
float gmax, castig, greutate;
struct obiect{
float g, val, rap;
} v[1001];
bool cond(obiect a, obiect b) {
if (a.rap > b.rap) {
return 1;
} else if (a.rap == b.rap) {
if (a.g > b.g) {
return 1;
}
}
return 0;
}
int main() {
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
fin >> n >> gmax;
for (int i = 1; i<=n; i++) {
fin >> v[i].g >> v[i].val;
v[i].rap = v[i].val/v[i].g;
}
sort(v+1, v+n+1, cond);
for (int i = 1; i<=n; i++) {
cout << v[i].g << " " << v[i].val << " " << v[i].rap << endl;
if (greutate < gmax) {
if (v[i].g+greutate > gmax) {
int diff = gmax-greutate;
greutate += diff;
castig += diff*v[i].rap;
} else {
greutate += v[i].g;
castig += v[i].val;
}
} else {
break;
}
cout << greutate << " " << castig << endl << endl;
}
fout << castig;
fin.close();
fout.close();
return 0;
}