Submission #1216349

#TimeUsernameProblemLanguageResultExecution timeMemory
1216349trimkusLet's Win the Election (JOI22_ho_t3)C++20
11 / 100
2596 ms468 KiB
#include <bits/stdc++.h> using namespace std; using ld = long double; int main() { int n, k; cin >> n >> k; vector<array<ld, 2>> a(n); for (int i = 0; i < n; ++i) { for (int j = 0; j < 2; ++j) { cin >> a[i][j]; } } vector<int> ord(n); iota(begin(ord), end(ord), 0); ld res = LLONG_MAX; vector<int> picked(n); auto gen = [&](auto& gen, int i, ld tim, ld pick, int have, vector<int>& ord) -> void { //~ if (ord[0] == 2) return; if (i == n) { if (have >= k) { //~ for (auto& u : ord) { //~ cerr << u << " "; //~ } //~ cerr << " = "; //~ cerr << tim << endl; //~ if (tim <= 42.167) { //~ for (auto& u : ord) { //~ cout << u << " "; //~ } //~ cout << "\n"; //~ for (auto& u : ord) { //~ cout << picked[u] << " "; //~ } //~ cout << "\n"; //~ } res = min(res, tim); } return; } int j = ord[i]; gen(gen, i + 1, tim, pick, have, ord); gen(gen, i + 1, tim + a[j][0] / pick, pick, have + 1, ord); if (a[j][1] != -1) { picked[j] = 1; gen(gen, i + 1, tim + a[j][1] / pick, pick + 1, have + 1, ord); picked[j] = 0; } }; do { gen(gen, 0, 0, 1, 0, ord); } while (next_permutation(begin(ord), end(ord))); cout << fixed << setprecision(3) << res << "\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...