#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;
auto gen = [&](auto& gen, int i, ld tim, ld pick, int have, vector<int>& ord) -> void {
if (i == n) {
if (have >= k) {
//~ for (auto& u : ord) {
//~ cerr << u << " ";
//~ }
//~ cerr << " = ";
//~ cerr << tim << endl;
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) gen(gen, i + 1, tim + a[j][1] / pick, pick + 1, have + 1, ord);
};
do {
gen(gen, 0, 0, 1, 0, ord);
} while (next_permutation(begin(ord), end(ord)));
cout << res << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |