0
点赞
收藏
分享

微信扫一扫

1G猫鼠交易

zmhc 2022-01-22 阅读 89

#include <iostream>
#include <algorithm>
#include<stdio.h>
#include<math.h> 
using namespace std;
struct Node
{
    double F,J;
};
bool cpm(Node x,Node y)
{
    return (x.J/x.F)>(y.J/y.F);
}
int main()
{
    int M,N,i;
    double R;
    struct Node room[1001];
    while(scanf("%d %d",&M,&N)!=EOF)
    {
        R=0;
        if(M==-1&&N==-1)break;
        for(i=1;i<N+1;i++)
        {
            scanf("%lf %lf",&room[i].J,&room[i].F);
        }
        sort(room+1,room+N+1,cpm);
        for(i=1;i<N+1;i++)
        {    
            if(M-room[i].F>=0){M=M-room[i].F;R+=room[i].J;}
            else {R+=room[i].J/room[i].F*M;break;}
        }
        printf("%.3lf\n",(int)(R*1000+0.5)/1000.0);//(巨坑)四舍五入问题
    }
        
    return 0;
}

总结:

1.结构体数组的创建(结构体内只能有成员变量)

2.sort函数对结构体数组排序

3.(巨坑)四舍五入问题

举报

相关推荐

0 条评论