Pagini recente » Cod sursa (job #504152) | Cod sursa (job #75642) | Cod sursa (job #3190820) | Cod sursa (job #2906124) | Cod sursa (job #1830201)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
fstream fin("rucsac.in", ios::in), fout("rucsac.out", ios::out);
int n , GMax, greutate[5001], profit[5001];
int poz[5001];
bool fcmp(int x, int y)
{
return profit[x] * greutate[y] > greutate[x] * profit[y];
}
int main()
{
fin >> n >> GMax;
for(int i = 1 ; i <= n ; i ++)
fin >> greutate[i] >> profit[i], poz[i] = i;
sort(poz + 1, poz + n + 1, fcmp);
//for(int i = 1 ; i <= n ; i ++)
// cout << greutate[poz[i]] << " " << profit[poz[i]] << endl;
int pmax = 0;
for(int i = 1 ; i <= n ; i ++)
if(GMax >= greutate[poz[i]])
GMax -= greutate[poz[i]], pmax += profit[poz[i]];
fout << pmax;
return 0;
}