#include <bits/stdc++.h>
using namespace std;
typedef long double ld;
const int N = 505;
int n, k, a[N], b[N];
vector<pair<int, int>> vec;
int main(){
cin >> n >> k;
for (int i = 0; i < n; i ++){
cin >> a[i] >> b[i];
if (b[i] == -1)
b[i] = 1e9;
vec.push_back({b[i], -a[i]});
}
sort(vec.begin(), vec.end());
ld ans = 1e6;
for (int i = 0; i <= vec.size(); i ++){
int cur = 1;
ld tme = 0;
for (int j = 0; j < min(k, i); j ++){
tme += (ld)vec[j].first / (ld)cur;
cur++;
if (tme > ans) break;
}
vector<int> tmp;
for (int j = i; j < vec.size(); j ++)
tmp.push_back(-vec[j].second);
sort(tmp.begin(), tmp.end());
for (int j = 0; j < k - i; j ++)
tme += (ld)tmp[j] / (ld)cur;
ans = min(ans, tme);
}
cout.precision(20);
cout << ans << endl;
}
| # | 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... |