Submission #729296

#TimeUsernameProblemLanguageResultExecution timeMemory
729296tch1cherinLet's Win the Election (JOI22_ho_t3)C++17
11 / 100
2555 ms320 KiB
#include <bits/stdc++.h> using namespace std; void solve() { int n, k; cin >> n >> k; vector<int> a(n), b(n); for (int i = 0; i < n; i++) { cin >> a[i] >> b[i]; } vector<int> order_a(n), order_b(n); iota(order_a.begin(), order_a.end(), 0); iota(order_b.begin(), order_b.end(), 0); sort(order_a.begin(), order_a.end(), [&](int i, int j) { return a[i] < a[j]; }); long double ans = 1e18; do { for (int max_c = 0; max_c <= n; max_c++) { int c = 1, cnt = 0; long double res = 0; vector<bool> used(n, false); for (int i : order_b) { if (b[i] != -1 && c <= max_c) { res += (long double)b[i] / c; c++; cnt++; used[i] = true; } } for (int i : order_a) { if (cnt < k && !used[i]) { res += (long double)a[i] / c; cnt++; } } if (cnt >= k) { ans = min(ans, res); } } } while (next_permutation(order_b.begin(), order_b.end())); cout << ans << "\n"; } int main() { cout << fixed << setprecision(9); ios::sync_with_stdio(false); cin.tie(nullptr); solve(); }
#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...