只有第一个点错了QAQ
查看原帖
只有第一个点错了QAQ
783555
ZeroCore楼主2024/4/30 11:33
#include <iostream>
#include <algorithm>
#include <utility>
using namespace std;
const int MAX = 105;
typedef pair <int, int> coin;

coin coins[MAX];

bool cmp(coin c1, coin c2)
{
    // double v1 = 1.0 * c1.second / c1.first;
    // double v2 = 1.0 * c2.second / c2.first;

    // return v1 > v2;
    return c1.second * c2.first > c1.first * c2.second;
}

int main()
{

    int n, t, value = 0;
    cin>>n>>t;
    for(int i=0; i<n; i++)
    {
        cin>>coins[i].first>>coins[i].second;
    }

    sort(coins, coins + n, cmp);

    int i=0;
    t -= coins[i].first;
    for(i=0; i<n && t>0; i++)
    {
        value += coins[i].second;
        t -= coins[i+1].first;
    }
    t = coins[i].first + t;
    printf("%.2lf", 1.0 * value + 1.0 * t * coins[i].second / coins[i].first);

    return 0;
}
2024/4/30 11:33
加载中...