Submission #1248811

#TimeUsernameProblemLanguageResultExecution timeMemory
1248811arashmemarLet's Win the Election (JOI22_ho_t3)C++20
23 / 100
248 ms412 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 21; pair <int, int> a[maxn]; vector <int> b, c; int main() { cout << setprecision(20); int n, k; cin >> n >> k; if (n > 20) { return 0; } for (int i = 0;i < n;i++) { cin >> a[i].second >> a[i].first; if (a[i].first == -1) { a[i].first = maxn * maxn * maxn; } } sort(a , a + n); long double rans = 1e18; for (int mask = 0;mask < (1 << n);mask++) { if (__builtin_popcount(mask) > k) { continue; } for (int i = 0;i < n;i++) { if (mask & (1 << i)) { b.push_back(a[i].first); } else { c.push_back(a[i].second); } sort(c.begin(), c.end()); } long double ans = 0; int tmp = 1; for (auto o : b) { ans += (long double)o / tmp; tmp++; } for (int i = 0;i < k - __builtin_popcount(mask);i++) { ans += (long double)c[i] / tmp; } rans = min(rans, ans); b.clear(); c.clear(); } cout << rans; }
#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...