代码:
#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0)
const double N = 1e9;
const double esp = 1e-4;
using namespace std;
double f[1000005][2];
int n, m;
double check(double k)
{
double sum = 0;
for(int i = 1; i <= n; i++){
if(k > f[i][1]) sum += 1.0;
else if(k > f[i][0]) sum += ((k-f[i][0]) / (f[i][1]-f[i][0]));
}
return sum < m;
}
double binary_ans()
{
double l = 0;
double r = N;
while((r-l) > esp)
{
double mid = (r + l) / 2;
if(check(mid))
l = mid;
else
r = mid;
}
return l;
}
int main()
{
ios;
cin >> n >> m;
// f[i][0] 区间左
// f[i][1] 区间右
for(int i = 1; i <= n; i++)
cin >> f[i][0] >> f[i][1];
double ans = binary_ans();
cout << ans << endl;
return 0;
}