Advertisement
mhdew

LOJ 1137

Feb 10th, 2019
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. /*Basic info
  2. Problem :
  3. Date :
  4. Author : Shesher
  5. */
  6.  
  7. #include<bits/stdc++.h>
  8.  
  9. using namespace std;
  10.  
  11. ///Template
  12. #define in1()    freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\input.txt", "r", stdin);
  13. #define out1()   freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\output.txt", "w", stdout);
  14.  
  15.  
  16. //Data types
  17. #define lo      long
  18. #define ll      long long
  19. #define llu     unsigned long long
  20.  
  21. //loop
  22. #define f1(i,x,y)   for(int i=x;i<=y;i++)
  23.  
  24. //Constants
  25. #define MAX     10000007
  26. #define MOD     10000007
  27. #define PI      acos(-1.0)
  28.  
  29. //STL
  30. #define vout(v)    for(int i=0;i<v.size();i++){cout<<v[i]; if(i==v.size()-1) cout<<endl; else cout<<" ";}
  31.  
  32. //Scan
  33. #define sc(x)   scanf("%d", &x)
  34.  
  35. double a, n, co;
  36.  
  37. double cs(double r)
  38. {
  39.     double ang=((r*r)+(r*r)-(a*a))/(2*r*r);
  40.     ang=acos(ang);
  41.     // ang=(ang*180)/PI;
  42.  
  43.     return ang*r;
  44. }
  45.  
  46. int main()
  47. {
  48.     // in1();
  49.     // out1();  
  50.     int t;
  51.     sc(t);
  52.     f1(ti,1,t){
  53.         cin>>a>>n>>co;
  54.  
  55.         if(n==0){
  56.             printf("Case %d: 0\n", ti);
  57.             continue;
  58.         }
  59.  
  60.         double s=(1+(n*co))*a;
  61.  
  62.         // cout<<s<<endl;
  63.  
  64.         double l=0.0, r=111111.0, mid;
  65.  
  66.         //while(l<r){
  67.         for(int i=0;i<100;i++){
  68.             mid=(l+r)/2.0;
  69.  
  70.             double rv=cs(mid);
  71.  
  72.             // cout<<"MID "<<mid<<" "<<rv<<endl;
  73.  
  74.             if(rv>s){
  75.                 l=mid;
  76.             }
  77.             else{
  78.                 r=mid;
  79.             }
  80.         }
  81.  
  82.         double temp=a/2.0;
  83.         double small=sqrt((mid*mid)-(temp*temp));
  84.         printf("Case %d: %0.10lf\n", ti, mid-small);
  85.     }
  86.  
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement