Submission #1265128

#TimeUsernameProblemLanguageResultExecution timeMemory
1265128tvgkLet's Win the Election (JOI22_ho_t3)C++20
5 / 100
130 ms464 KiB
#include<bits/stdc++.h> using namespace std; #define task "a" #define se second #define fi first #define ll long long #define ii pair<ll, ll> const long mxN = 2e5 + 7, inf = 1e9 + 7; int n, k; double dp[mxN]; ii a[mxN]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen(task".INP", "r", stdin); //freopen(task".OUT", "w", stdout); cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> a[i].se >> a[i].fi; if (a[i].fi == -1) a[i].fi = inf; } sort(a + 1, a + n + 1); double ans = inf; for (int i = 0; i <= k; i++) { for (int j = 1; j <= k; j++) dp[j] = inf; for (int j = 1; j <= n; j++) { for (int u = k; u >= 0; u--) { dp[u + 1] = min(dp[u + 1], dp[u] + double(a[j].se) / (i + 1)); int v = j - u; if (0 < v && v <= i) { if (a[i].fi == inf) dp[u] = inf; else dp[u] += double(a[j].fi) / v; } } } ans = min(ans, dp[k - i]); } cout << fixed << setprecision(9) << ans; }
#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...