求助 只对了第一个点
查看原帖
求助 只对了第一个点
432183
JoeBiden2020楼主2021/5/6 20:15
#include<bits/stdc++.h>
using namespace std;
struct sb{
    float m;
    float v;
    float xjb;
};
bool cmp(sb aa,sb bb){
    return aa.v*bb.m>aa.v*bb.m;
}
sb x[105];
int main(){
    int n,t;
    float total=0.0;
    cin>>n>>t;
    for(int i=1;i<=n;i++){
        cin>>x[i].m>>x[i].v;
        x[i].xjb=x[i].m/x[i].v;
    }
    sort(x+1,x+n+1,cmp);
    for(int i=1;i<=n;i++){
        if(t<=0){
            break;
        }
        else if(t>0&&t>=x[i].m){
            total+=x[i].v*1.0;
            t-=x[i].m;
        }
        else if(t>0&&t<x[i].m){
            total+=t*x[i].xjb*1.0;
            t=0;
        }
    }
    printf("%.2lf",total);
    return 0;
}
2021/5/6 20:15
加载中...