把int改成double就全A了,不是说两个整数吗
查看原帖
把int改成double就全A了,不是说两个整数吗
1461843
faithz楼主2024/12/30 15:50
#include <bits/stdc++.h>

using namespace std;

typedef long long LL ;
typedef pair<int,int>PII;

struct P
{
    double m,v;
    double d;
    bool operator< (const P &D)const
    {
        return d < D.d;
    }
}p[110];
int main()
{
    cin.tie(0),cout.tie(0);
    ios::sync_with_stdio(0);
    int n,t;
    cin >> n >> t;
    for(int i = 0;i < n;i++)
    {
        double m,v;
        cin >> m >> v;
        double d = v / m;
        p[i] = {m,v,d};
    }
    sort(p,p + n);
    double res = 0;
    for(int i = n - 1;i >= 0;i--)
    {   
        if(p[i].m <= t)
        {
            t -= p[i].m;
            res += p[i].v;
            continue;
        }
        if(p[i].m >= t)
        {
            res += p[i].d * t; 
            break;
        }
    }
    printf("%.2lf",res);
    return 0;
 }
2024/12/30 15:50
加载中...