Submission #1182880

#TimeUsernameProblemLanguageResultExecution timeMemory
1182880dima2101Let's Win the Election (JOI22_ho_t3)C++20
10 / 100
9 ms328 KiB
#include <bits/stdc++.h> #define int long long int32_t main() { std::ios::sync_with_stdio(false); std::cin.tie(0); int n; std::cin >> n; int k; std::cin >> k; std::vector<std::pair<int, int>> b(n); int cnt = 0; for (int i = 0; i < n; i++) { std::cin >> b[i].first; std::cin >> b[i].second; if (b[i].second == -1) { cnt++; b[i].second = 1e4; } } cnt = n - cnt; long double best = -1; for (int i = 0; i <= std::min(cnt, k); i++) { std::sort(b.begin(), b.end(), [&](std::pair<int, int> a, std::pair<int, int> b) { return a.second < b.second; }); std::sort(b.begin() + i, b.end(), [&](std::pair<int, int> a, std::pair<int, int> b) { return a.first < b.first; }); long double ans = 0; for (int j = 0; j < i; j++) { ans += (long double)(b[j].second) / (long double)(j + 1); } int cnt1 = (k - i); for (int j = i; j < n; j++) { ans += (long double)(b[j].first) / (long double)(i + 1); cnt1--; if (cnt1 == 0) { break; } } // std::cout << i << ' ' << ans << ' ' << cnt1 << std::endl; if (best == -1 || best > ans) { best = ans; } } std::cout << std::setprecision(20) << std::fixed << best; }
#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...