Submission #938097

#TimeUsernameProblemLanguageResultExecution timeMemory
938097esomerLet's Win the Election (JOI22_ho_t3)C++17
100 / 100
795 ms600 KiB
#include <bits/stdc++.h> using namespace std; typedef long double ld; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int N, K; cin >> N >> K; vector<pair<ld, ld>> v(N); for(int i = 0; i < N; i++){ cin >> v[i].second >> v[i].first; if(v[i].first == -1) v[i].first = 1e9; } sort(v.begin(), v.end()); ld ans = 7e18; for(ld collaborators = 0; collaborators < K; collaborators++){ int mx = K - collaborators; vector<ld> dp(mx+1, 1e18); dp[0] = 0; for(int i = 0; i < N; i++){ for(int elem = mx; elem >= 0; elem--){ if(elem != mx){ dp[elem+1] = min(dp[elem+1], dp[elem] + v[i].second / (1.0+collaborators)); } int ind = i+1 - elem; if(ind <= 0) continue; if(ind <= collaborators) dp[elem] += v[i].first / (ld)ind; } } ans = min(ans, dp[mx]); } cout << fixed << setprecision(8) << ans << "\n"; }
#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...