C++80分求条
查看原帖
C++80分求条
1520831
Nacocx楼主2024/11/6 22:16
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double N,T;
    cin>>N>>T;
    map<double, double,greater<double>> mnm;
    for(int i=0;i<N;i++)
    {
        double m,v;
        cin>>m>>v;
        double bl=1.0*v/m;
        mnm[bl]=m;
    }
    double sum=0;
    while(T>0&&!mnm.empty())
    {
        double it=mnm.begin()->first;
        double sit=mnm.begin()->second;
        if(T<sit)
            {
            sum+= it*T;
            break;
            }
        else
        {
           sum+= it*sit;
           T-=sit;
           mnm.erase(mnm.begin());
        }
        }
    cout<<fixed<<setprecision(2)<<sum;
    return 0;
}

测试点2不对

2024/11/6 22:16
加载中...