Submission #1194452

#TimeUsernameProblemLanguageResultExecution timeMemory
1194452biankLet's Win the Election (JOI22_ho_t3)C++20
56 / 100
2594 ms3056 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<int(n);i++) #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define dforn(i,n) for(int i=int(n)-1;i>=0;i--) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define fst first #define snd second #define pb push_back #define eb emplace_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() typedef long long ll; typedef long double ld; typedef vector<ll> vll; typedef vector<int> vi; typedef pair<int,int> ii; const ld INF = 1e18; const int N = 500; void chmin(ld &x, ld v) { if (x > v) x = v; } ld dp[N][N]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<pair<ll, ll>> x(n); forn(i, n){ cin >> x[i].snd >> x[i].fst; if (x[i].fst == -1) x[i].fst = 1e9; } sort(all(x)); ld ans = INF; forn(c, k + 1) { forn(a, k + 1 - c) forn(b, c + 1) dp[a][b] = INF; dp[0][0] = 0; forn(i, n) dforn(a, k + 1 - c) dforn(b, c + 1) { chmin(dp[a + 1][b], dp[a][b] + ld(x[i].snd) / (c + 1)); chmin(dp[a][b + 1], dp[a][b] + ld(x[i].fst) / (b + 1)); } chmin(ans, dp[k - c][c]); } cout << fixed << setprecision(10) << ans << '\n'; 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...