Submission #1271656

#TimeUsernameProblemLanguageResultExecution timeMemory
1271656ZeroCoolMobile (BOI12_mobile)C++20
100 / 100
629 ms16088 KiB
#include <bits/stdc++.h>
using namespace std;;
#define ll long long
#define ar array
#define ld double
// #define int long long
#define all(v) v.begin(), v.end()

 #pragma GCC optimize("O3,Ofast,unroll-loops ")

const int N = 5e5 + 20;
const int M = 20;
const int LOG = 20;
const int INF = 1e17;	
int MOD = 1e9 + 7;
const ld EPS = 1e-12;

template<typename T>
inline void chmin(T &x,T y){x = min(x, y);}
template<typename T>
inline void chmax(T &x,T y){x = max(x, y);}
inline void mm(int &x){x = (x % MOD + MOD) % MOD;};

void orz(){
    int n, m;
    cin>>n>>m;
    ld x[n], y[n];
    for(int i = 0;i < n;i++)cin>>x[i]>>y[i];
    ld lo = 0;
    ld hi = 2e9;

    for(int it = 0;it < 50;it++){
        ld mid = (lo + hi) / 2;
        ld d = 0;
        for(int i = 0;i < n;i++){
            if(y[i] <= mid){
                ld l = x[i] - sqrt(mid * mid - y[i] * y[i]);
                ld r = x[i] + sqrt(mid * mid - y[i] * y[i]);
                if(l <= d)d = max(d, r);
            }
        }
        if(m <= d)hi = mid;
        else lo = mid;
    }
    cout<<setprecision(6)<<fixed<<lo<<'\n';
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    //  cin>>t;
    while (t--)orz();
}   

Compilation message (stderr)

mobile.cpp:9:47: warning: bad option '-funroll-loops ' to pragma 'optimize' [-Wpragmas]
    9 |  #pragma GCC optimize("O3,Ofast,unroll-loops ")
      |                                               ^
mobile.cpp:14:17: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+17' to '2147483647' [-Woverflow]
   14 | const int INF = 1e17;
      |                 ^~~~
mobile.cpp:19:27: warning: bad option '-funroll-loops ' to attribute 'optimize' [-Wattributes]
   19 | inline void chmin(T &x,T y){x = min(x, y);}
      |                           ^
mobile.cpp:21:27: warning: bad option '-funroll-loops ' to attribute 'optimize' [-Wattributes]
   21 | inline void chmax(T &x,T y){x = max(x, y);}
      |                           ^
mobile.cpp:22:22: warning: bad option '-funroll-loops ' to attribute 'optimize' [-Wattributes]
   22 | inline void mm(int &x){x = (x % MOD + MOD) % MOD;};
      |                      ^
mobile.cpp:24:10: warning: bad option '-funroll-loops ' to attribute 'optimize' [-Wattributes]
   24 | void orz(){
      |          ^
mobile.cpp:48:13: warning: bad option '-funroll-loops ' to attribute 'optimize' [-Wattributes]
   48 | signed main() {
      |             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...