#include<bits/stdc++.h>
using namespace std;
#define debug(v) cout << #v << ": " << v << endl;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int MAXN = 2e5+5, inf = 1e9;
const ll INF = 1e18;
int n, k;
vector<pii> states;
bool cmp(pii a, pii b){
return a.second < b.second;
}
double ans = inf;
int main(){
cin >> n >> k;
for(int i = 1; i <= n; i++){
int a, b; cin >> a >> b;
b = b<0? inf:b;
states.push_back({a, b});
}
sort(states.begin(), states.end(), cmp);
for(int T = 0; T <= k; T++){
if(T>0 && states[T-1].second == inf) break;
double eficiency = 1;
double spent = 0;
for(int i = 0; i < T; i++){
spent += states[i].second/eficiency;
eficiency++;
}
vector<int> left_over;
for(int i = T; i < n; i++) left_over.push_back(states[i].first);
sort(left_over.begin(), left_over.end());
for(int i = 0; T+i < k; i++){
spent += left_over[i]/eficiency;
}
ans = min(ans, spent);
}
cout << setprecision(16) << 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... |