#include
#include
using namespace std;
float Max(float *f,int& index,int length)
{
float max=0.0;
for(int i=0;i
if(f[i]>max)
{
max=f[i];
index=i;
}
}
return max;
}
int main()
{
int M,N,*mfood,*cfood,pos;
float *p,maxfood;
while(scanf("%d %d",&M,&N)!=EOF&&M!=-1&&N!=-1)
{
p=new float[N];
cfood=new int[N];
mfood=new int[N];
pos=0;
maxfood=0;
for(int i=0;i
scanf("%d %d",&mfood[i],&cfood[i]);
if(mfood[i]==0&&cfood[i]!=0)
p[i]=0.0;
if(cfood[i]==0&&mfood[i]!=0)
p[i]=1001;
p[i]=mfood[i]/(float)cfood[i];
}
int length=N;
while(M!=0&&N!=0)
{
float pro=Max(p,pos,length);
if(M>=cfood[pos])
{
maxfood+=mfood[pos];
M-=cfood[pos];
}
else
{
maxfood+=(M*pro);
M=0;
}
N--;
p[pos]=0.0;
}
printf("%.3f\n",maxfood);
delete []p;
delete []cfood;
delete []mfood;
}
return 0;
}
上交后什么提示