Pagini recente » Cod sursa (job #1493036) | Cod sursa (job #1775541) | Cod sursa (job #920948) | Cod sursa (job #2575279) | Cod sursa (job #711501)
Cod sursa(job #711501)
//Include
//#include <iostream>
#include <fstream>
#include <set>
#include <utility>
using namespace std;
//Definitii
#define pereche pair<int, int>
#define greutate first
#define cost second
//Clase
class dupaEficienta
{
public:
bool operator() (pereche a, pereche b)
{ return ((double)a.cost/a.greutate > (double)b.cost/b.greutate); }
};
//Variabile
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n, g;
int profit;
pereche curent;
multiset<pereche, dupaEficienta> s;
multiset<pereche, dupaEficienta>::iterator it, end;
//Main
int main()
{
in >> n >> g;
for(int i=1 ; i<=n ; ++i)
{
in >> curent.greutate >> curent.cost;
s.insert(curent);
}
end = s.end();
for(it=s.begin() ; it!=end && g ; ++it)
{
//system("cls");
//cout << it->greutate << ' ' << it->cost;
if(it->greutate <=g)
{
g -= it->greutate;
profit += it->cost;
}
}
out << profit;
in.close();
out.close();
return 0;
}