제출 #923511

#제출 시각아이디문제언어결과실행 시간메모리
923511heeheeheehaawLet's Win the Election (JOI22_ho_t3)C++17
10 / 100
16 ms448 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

struct oras
{
    int a, b;
};

oras v[100005];
typedef long double ld;

bool cmp2(oras a, oras b)
{
    return a.a < b.a;
}

bool cmp1(oras a, oras b)
{
    return a.b < b.b;
}

signed main()
{
    int n, k;
    cin>>n>>k;
    ld minn = 0.0;
    int nrr = n;
    for(int i = 1; i <= n; i++)
    {
        cin>>v[i].a>>v[i].b, minn += (ld)v[i].a;
        if(v[i].b == -1) v[i].b = 1e12, nrr--;
    }

    for(int cnt = 0; cnt <= min(nrr, k); cnt++)
    {
        sort(v + 1, v + n + 1, cmp1);
        ld rez = 0.0;
        for(int i = 1; i <= cnt; i++)
            rez += (ld)((ld)v[i].b / (ld)i);
        sort(v + min(n + 1, cnt + 1), v + n + 1, cmp2);
        for(int i = cnt + 1; i <= k; i++)
            rez += (ld)((ld)v[i].a / (ld)(cnt + 1));
        minn = min(minn, rez);
    }

    cout<<fixed<<setprecision(15);
    cout<<minn;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...