20分求助
查看原帖
20分求助
1348393
goodsnack楼主2024/10/28 16:36
#include <cstdio>
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <queue>
#include <cstring>
#include <set>
#include <map>
using namespace std;
const int N = 1e4 + 8;
int main()
{
    int n, t;
    cin >> n >> t;
    double m[N];
    double v[N];
    double b[N];
    double res = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> m[i] >> v[i];
        b[i] = v[i] / m[i];
    }
    sort(b, b + n, greater<double>());
    for (int i = 0; i < n; i++)
    {
        if (t >= m[i])
        {
            t -= m[i];
            res += v[i];
        }
        else
        {
            res += b[i] * t;
            break;
        }
    }
    cout << fixed << setprecision(2) << res << endl;
    return 0;
}

2024/10/28 16:36
加载中...