#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define re exit(0);
int n,k;
int a[509],b[509];
int main() {
ios_base::sync_with_stdio(0);cin.tie(nullptr);
cin >> n >> k;
for (int i = 1;i <= n;i++) cin >> a[i] >> b[i];
double res = 1e9;
for (int mask = 0;mask < (1 << n);mask++) {
bool checkmask = 1;
for (int i = 1;i <= n;i++) if ((mask >> (i - 1) & 1) && b[i] == -1) {
checkmask = 0;
break;
}
if (!checkmask) continue;
vector <int> more;
for (int i = 1;i <= n;i++) if (mask >> (i - 1) & 1) more.push_back(b[i]);
sort(more.begin(),more.end());
double totaltime = 0;int cnt = 1;
for (int i = 0;i < more.size();i++) {
totaltime += 1.0 * more[i] / cnt;
cnt++;
}
more.clear();
for (int i = 1;i <= n;i++) if (!(mask >> (i - 1) & 1)) more.push_back(a[i]);
sort(more.begin(),more.end());
int voted = cnt - 1;
for (int i = 0;i < more.size() && voted < k;i++) {
totaltime += 1.0 * more[i] / cnt;
voted++;
}
res = min(res,totaltime);
}
cout << setprecision(4) << fixed << res;
}
| # | 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... |