Submission #1355170

#TimeUsernameProblemLanguageResultExecution timeMemory
1355170gayLet's Win the Election (JOI22_ho_t3)C++20
23 / 100
2595 ms456 KiB
#include <bits/stdc++.h>
#include <experimental/random>
#include <random>

//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;

using namespace std;

using ld = long double;
using ll = long long;

const ll INF = 2e18, MOD = 1e9 + 7;

void solve();

signed main() {
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    int q = 1;
    //cin >> q;
    while (q--) {
        solve();
    }
}

void solve() {
    ll n, k;
    cin >> n >> k;
    vector<pair<ll, ll>> hv;
    for (int i = 0; i < n; i++) {
        ll a, b; cin >> a >> b;
        if (b == -1) b = INF;
        hv.emplace_back(a, b);
    }
    ld ans = INF;
    for (int mask = 0; mask < (1 << n); mask++) {
        vector<ll> cnt, cnt2;
        for (int i = 0; i < n; i++) {
            if (!((mask >> i) & 1)) {
                cnt2.push_back(hv[i].first);
            } else {
                cnt.push_back(hv[i].second);
            }
        }
        sort(cnt.begin(), cnt.end());
        sort(cnt2.begin(), cnt2.end());
        if (cnt.size() > k) continue;
        ll sm = 0;
        for (int i = 0; i < k - cnt.size(); i++) {
            sm += cnt2[i];
        }
        ld time = ld(sm) / ld(cnt.size() + 1);
        for (int i = 0; i < cnt.size(); i++) {
            time += ld(cnt[i]) / ld(i + 1);
        }
        ans = min(ans, time);
    }
    cout << fixed << setprecision(9) << ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...