Submission #1149339

#TimeUsernameProblemLanguageResultExecution timeMemory
1149339ByeWorldMobile (BOI12_mobile)C++20
0 / 100
1098 ms80996 KiB
#include <bits/stdc++.h> #define int long long #define ll long long #define pb push_back #define fi first #define se second #define lf (id<<1) #define rg ((id<<1)|1) #define md ((l+r)>>1) #define ld long double using namespace std; typedef pair<int,int> pii; typedef pair<char,char> pcc; typedef pair<pii,int> ipii; typedef pair<pii,pii> ipiii; const int MAXN = 1e6+10; const int SQRT = 300; const int MAXA = 50; const int LOG = 20; const int INF = 1e12+10; const ld EPS = 1e-5; const int MOD = 998244353; int sum(int a, int b){ return (a+b)%MOD; } void chsum(int &a, int b){ a = (a+b)%MOD; } void chsub(int &a, int b){ a = (a+MOD-b)%MOD; } int mul(int a, int b){ return (a*b)%MOD; } void chmul(int &a, int b){ a = (a*b)%MOD; } void chmn(int &a, int b){ a = min(a, b); } void chmx(int &a, int b){ a = max(a, b); } int n; ld len, x[MAXN], y[MAXN]; bool cek(ld mid){ vector<pair<ld,ld>> vec; for(int i=1; i<=n; i++){ if(abs(y[i]) >= mid) continue; ld dis = sqrt(mid*mid - y[i]*y[i]); vec.pb({x[i]-dis+EPS, x[i]+dis-EPS}); } sort(vec.begin(), vec.end()); ld mx = 0; for(auto [p, q] : vec){ // cout << p << ' '<<q << "pq\n"; if(p > q) continue; if(q<0) continue; if(mx < p) return 0; mx = q; } return (mx >= len); } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>len; for(int i=1; i<=n; i++) cin>>x[i]>>y[i]; // cout << cek(5) <<"cek\n"; // return 0; ld l=0, r=INF, mid=0, cnt=0; while(r-l>=EPS){ mid = (l+r)/2; if(cek(mid)) cnt = mid, r = mid; else l = mid; } cout << fixed << setprecision(4) << cnt << '\n'; }
#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...