33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
int a[100],b[100];
double c[100],d[100],big=0;
int i,j,w,n;
scanf("%d%d",&w,&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i],&b[i]);
c[i]=b[i]/(a[i]*1.0);
d[i]=c[i];
}
sort(d,d+n-1);
for(i=n-1;i>=0;i--)
{
for(j=0;j<n;j++)
{
if(c[j]==d[i]&&w>0)
{
if(w>=a[j])
big=big+b[j];
else
big=big+c[j]*w;
w=w-a[j];
}
}
}
printf("%.2lf\n",big);
}
struct shemmegui{
int tiji;
int jiazhi;
double average;
};
#include<stdio.h>
int main()
{
struct shemmegui t,a[100];
struct shemmegui temp;
int v,n,i,k;
double m,max;
scanf("%d%d",&v,&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&t.tiji,&t.jiazhi);
t.average=t.jiazhi*1.0/t.tiji;
a[i]=t;
}
for(i=0;i<n;i++)
{
for(k=0;k<n;k++)
{
if(a[k].average>a[i].average)
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
}
m=0;
max=0;
for(i=0;i<n;i++)
{
if(a[i].tiji>v&&v>0)
{
m=m+a[i].average*v;
v=0;
if(m>max) max=m;
}
if(a[i].tiji<=v&&v>0)
{
m=m+a[i].jiazhi;
v=v-a[i].tiji;
if(m>max)
{
max=m;
}
}
}
printf("%.2lf\n",max);
return 0;
}