Pagini recente » Cod sursa (job #2662642) | Cod sursa (job #3152329) | Cod sursa (job #510308) | Cod sursa (job #66184) | Cod sursa (job #2929286)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int a[7001], b[7001], n, gmax;
float c[7001];
int greedy();
int maxx();
int main()
{
fin>>n>>gmax;
for (int i = 1; i <= n; i++)
{
fin>>a[i]>>b[i];
}
for (int i = 1; i <= n; i++)
{
c[i] = (float)b[i] / a[i];
}
fout<<greedy();
return 0;
}
int greedy()
{
int profit = 0, k;
while(gmax)
{
k = maxx();
if (gmax - a[k] < 0)
gmax = 0;
else
{
profit = profit + b[k];
gmax = gmax - a[k];
}
c[k] = 0;
}
return profit;
}
int maxx()
{
float max = c[1];
int k = 1;
for (int i = 2; i <= n; i++)
{
if (max < c[i])
{
max = c[i];
k = i;
}
}
return k;
}