文章
13
粉丝
55
获赞
2
访问
8.5k
#include<bits/stdc++.h>
using namespace std;
struct node{
double a;
double b;
double avg;
}n[1001];
bool cmp(node a,node b)
{
return a.avg < b.avg;
}
int main()
{
double m;
int d;
while(cin>>m>>d){
if(m==-1) break;
for(int i = 0;i<d;i++){
cin>>n[i].a>>n[i].b;
n[i].avg = n[i].b / n[i].a;
}
sort(n,n+d,cmp);
double sum = 0;
for(int i = 0;i<d;i++)
{
if(m >= n[i].b ){
m -= n[i].b;
sum += n[i].a;
}else{
sum += m / n[i].avg;
break;
}
}
printf("%.3lf\n",sum);
}
return 0;
}
创建结构体,注意读题,以为是一组输入还以为是精度的问题,卡了好久。 这道题典型的贪心。
登录后发布评论
暂无评论,来抢沙发