Pagini recente » Cod sursa (job #3241976) | Cod sursa (job #2654371) | Cod sursa (job #1078028) | Cod sursa (job #2526162) | Cod sursa (job #3274138)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
#define N 5005
struct obiect {
double val;
double g;
}a[N];
int n, gmax;
int vmax;
bool compare(obiect x, obiect y)
{
double r1 = (x.val * 1.0) / (x.g * 1.0);
double r2 = (y.val * 1.0) / (y.g * 1.0);
return r1 >= r2;
}
int main()
{
fin >> n >> gmax;
for (int i=1;i<=n;i++) {
fin >> a[i].g >> a[i].val;
}
sort (a+1, a+n+1, compare);
for (int i=1;i<=n;i++) {
if (a[i].g <= gmax) {
gmax -= a[i].g;
vmax += a[i].val;
}
}
fout << vmax << '\n';
return 0;
}