11111
查看原帖
11111
555455
zhaoyizhu_com楼主2021/12/20 18:27

#include <iostream>
#include <algorithm>
using namespace std;

struct Gold
{
    int m, v;
    double p;
}g[1100];

bool cmp(Gold x, Gold y)
{
    return x.p > y.p;
}

int main()
{
    int n, t;
    cin >> n >> t;
    for (int i = 1; i <= n; i++)
    {
        cin >> g[i].m >> g[i].v;
        g[i].p = 1.0 * g[i].v / g[i].m ;
    }
    sort(g + 1, g + n + 1, cmp);
    
    double ans = 0;
    for (int i = 1; i <= n; i++)
    {
        if(g[i].m <= t)
        {
        	ans += g[i].v;
        	t -= g[i].m;
        }
        else
        {
        	ans += t * g[i].p;
        	break;
        }
    }
    cout << ans << endl;
    return 0;
}

2021/12/20 18:27
加载中...