Pagini recente » Cod sursa (job #1594141) | Cod sursa (job #1877629) | Cod sursa (job #1805888) | Cod sursa (job #1206390) | Cod sursa (job #2083218)
#include <cstdio>
#include <algorithm>
using namespace std;
struct OB
{
int g, v;
double f;
}o[1005];
bool cmp(OB a, OB b)
{
if(a.f>b.f)
return 1;
return 0;
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int i, n, gmax, pf=0;
scanf("%d%d", &n, &gmax);
for(i=0 ; i<n ; i++)
{
scanf("%d%d", &o[i].g, &o[i].v);
o[i].f=(float)o[i].v/o[i].g;
}
sort(o, o+n, cmp);
for(i=0 ; i<n && (gmax-o[i].g >= 0) ; i++)
pf+=o[i].v, gmax-=o[i].g;
if(gmax && i<n)
printf("%.3lf", pf+gmax*o[i].f);
else
printf("%d", pf);
return 0;
}