Pagini recente » Cod sursa (job #2355944) | Cod sursa (job #1772334) | Cod sursa (job #873080) | Cod sursa (job #2273006) | Cod sursa (job #1761363)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int n , gmax , s ;
struct ob {
int p ,gr;
float x;
};
ob V[5001];
bool test (ob t1 , ob t2)
{
return ((t1.x > t2.x) || (t1.x == t2.x) && (t1.gr < t2.gr));
}
int main()
{
f >> n >> gmax;
for (int i = 1; i <= n ; ++i)
{
f >> V[i].gr >> V[i].p;
V[i].x = V[i].p / (V[i].gr + 0.0);
}
sort (V + 1 , V + n + 1 , test);
for ( int i =1 ; i <= n ; ++i)
{
if (gmax - V[i].gr >= 0)
{
s+= V[i].p;
gmax -= V[i].gr;
}
}
g << s << '\n';
g.close();
return 0;
}