#include<bits/stdc++.h>
using namespace std;
#define IOS cin.tie(nullptr)->sync_with_stdio(0),cin.exceptions(cin.failbit);
#define lb(x) (x)&-(x)
#define all(x) (x).begin(),(x).end()
#define ll long long
#define db long double
constexpr int maxN=5e2+5;
int n,k;
db dp[maxN];
pair<db,db> val[maxN];
inline db DP(int G){
fill(dp+1,dp+k+1,1e18);
for(int i = 1;i<=n;i++)for(int j = k;j;j--)
dp[j] = min(dp[j],dp[j-1]+(j<=G?(val[i].first/j):(val[i].second/(G+1))));
return dp[k];
}
int main(){
IOS
cin>>n>>k;
for(int i = 1;i<=n;i++){
cin>>val[i].second>>val[i].first;
if(val[i].first==-1)val[i].first = 1e13;
}
sort(val+1,val+n+1);
db ans = 1e18;
for(int i = 0;i<=k;i++)ans = min(ans,DP(i));
cout<<fixed<<setprecision(15)<<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... |