fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define eps 1e6
  4. int arr[100050],brr[100050];
  5. double n,p;
  6. bool check(double x){
  7. double sum=0;
  8. for(int i=1;i<=n;i++){
  9. if(brr[i]>=arr[i]*x) continue;
  10. sum+=arr[i]*x-brr[i];
  11. }
  12. return sum<=x*p;
  13. }
  14. int main(){
  15. cin>>n>>p;
  16. for(int i=1;i<=n;i++){
  17. cin>>arr[i];
  18. cin>>brr[i];
  19. }
  20. double r=1e10+100,l=1,ans=-1;
  21. while(r-l>eps){
  22. double mid=(r+l)/2;
  23. if(check(mid)){
  24. l=mid;
  25. ans=mid;
  26. }else{
  27. r=mid;
  28. }
  29. }
  30. if(ans==-1){
  31. cout<<-1;
  32. return 0;
  33. }
  34. printf("%.7lf",ans);
  35. return 0;
  36. }
Success #stdin #stdout 0s 5316KB
stdin
1 100
1 1
stdout
9999389748.4314575