//九度p38 ,贪心算法
//九度oj
#include <stdio.h>
#include <algorithm>
#include <iostream>
using namespace std;
struct node{
int we;
int co;
double bi;
bool operator < (const node & b) const
{
return bi>b.bi;
}
}buf[1000];
int main()
{
int m,n;
double left,ans;
while(scanf("%d%d",&m,&n)!=EOF&&(m!=-1)&&(n!=-1))
{
for(int i=0;i<n;i++)
{
scanf("%d%d",&buf[i].we,&buf[i].co);
buf[i].bi=double(buf[i].we*1.0/buf[i].co);
}
sort(buf,buf+n);
left=m;
ans=0;
for(int i=0;i<n&&left>0;i++)
{
if(left<buf[i].co)
{
ans+=buf[i].bi*left;
left=0;
}
else
{
ans+=buf[i].we;
left-=buf[i].co;
}
}
printf("%.3lf\n",ans);//好像是cb的编译器出问题了,使用double就用double的lf输出以后,没错的
}
return 0;
}
第十一题 九度p38 ,贪心算法 cb的编译器出问题了,以后还是用dev吧
最新推荐文章于 2022-10-23 17:31:04 发布