Submission #1268064

#TimeUsernameProblemLanguageResultExecution timeMemory
1268064ChuanChenLet's Win the Election (JOI22_ho_t3)C++20
10 / 100
4 ms328 KiB
#include<bits/stdc++.h> using namespace std; const int inf = 2e9; int n, k; vector<pair<int, int>> states; bool cmp(pair<int, int> x, pair<int, int> y) { if (x.second == y.second) return x.first > y.first; return x.second < y.second; } int main() { cin >> n >> k; for (int i = 0; i < n; i++) { int a, b; cin >> a >> b; if (b == -1) b = inf; states.push_back({a, b}); } sort(states.begin(), states.end(), cmp); long double ans = inf; for (int T = 0; T <= k; T++) { if (T > 0 && states[T-1].second == inf) break; long double spent = 0; int efficiency = 1; for (int i = 0; i < T; i++) { spent += states[i].second / (long double) efficiency; efficiency++; } vector<int> left_over; for (int i = T; i < n; i++) { left_over.push_back(states[i].first); } sort(left_over.begin(), left_over.end()); int sum = 0; for (int i = 0; i < k - T; i++) { sum += left_over[i]; } spent += sum / (long double) efficiency; if (ans > spent) ans = spent; } cout << fixed << setprecision(16) << ans << endl; 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...