Submission #1238193

#TimeUsernameProblemLanguageResultExecution timeMemory
1238193vicvicLet's Win the Election (JOI22_ho_t3)C++20
10 / 100
1 ms328 KiB
#include <bits/stdc++.h>

using namespace std;
const int NMAX=500;
int a[NMAX+5], n, k, b[NMAX+5], indb[NMAX+5], inda[NMAX+5], rez=0, used[NMAX+5];
int main ()
{
    ios_base :: sync_with_stdio (0);
    cin.tie (nullptr);
    cin >> n >> k;
    int valid=0;
    for (int i=1;i<=n;i++)
        cin >> a[i] >> b[i], inda[i]=i, indb[i]=i, valid+=b[i]!=-1;
    sort (inda+1, inda+n+1, [] (int x, int y) {return a[x]<a[y];});
    sort (indb+1, indb+n+1, [] (int x, int y) {return b[x]<b[y];});
    double ans=0;
    for (int nr=0;nr<=min (valid, k);nr++)
    {
        int cnt=1;
        double crt=0;
        memset (used, 0, sizeof(used));
        for (int i=1;cnt<=nr;i++)
        {
            if (b[indb[i]]==-1)
                continue;
            crt+=1.0*b[indb[i]]/cnt;
            used[indb[i]]=1;
            cnt++;
        }
        int tt=0;
        for (int i=1;tt<k-nr;i++)
        {
            if (used[inda[i]])
                continue;
            tt++;
            crt+=1.0*a[inda[i]]/cnt;
        }
        ans=nr==0?crt:min (ans, crt);
    }
    cout << fixed << ans << "\n";
    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...