#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>
using namespace std;
const int N = 505;
int a[N], b[N];
int main(){
cout<<fixed<<setprecision(10);
int n, k;
cin>>n>>k;
vector<pair<int, int>> clb(1);
for (int i=1;i<=n;i++){
cin>>a[i]>>b[i];
if (b[i] == -1)
b[i] = 1001;
clb.push_back({b[i], a[i]});
}
sort(begin(clb) + 1, end(clb));
long double tm = 0, sm, Ans = k * 1000;
for (int i=1;i<=k;i++){
vector<int> v;
sm = 0;
for (int j=i;j<=n;j++)
v.push_back(clb[j].second);
sort(begin(v), end(v));
for (int j=1;j<=k - i + 1;j++)
sm += v[j - 1];
Ans = min(Ans, tm + sm / (1.0 * i));
if (clb[i].first == 1001)
break;
tm = tm + (1.0 * clb[i].first) / (1.0 * i);
}
cout<<Ans<<'\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... |