제출 #1298113

#제출 시각아이디문제언어결과실행 시간메모리
1298113PhongnvMobile (BOI12_mobile)C++20
100 / 100
392 ms16084 KiB
/// PhongDang Cs4_uet #include <bits/stdc++.h> using namespace std; #define pb push_back #define fo(i, l, r) for(int i = l; i <= r; i++) #define foi(i, l, r) for(int i = l; i >= r; i--) #define pii pair<int, int> #define mx(x, y) max(x, y) #define fi first #define se second #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #define ll long long #define pob pop_back #define all(x) x.begin(),x.end() #define vii vector<int> #define int long long #define getbit(i, j) ((i >> j) & 1) #define offbit(i, j) (1 << j) ^ i #define onbit(i, j) (1 << j) i #define built(mask) __builtin_popcountll(mask) #define len(s) (int)((s).size()) #define iii pair<int,pair<int, int> > #define fillcharval(a) memset(a, -0x3f, sizeof(a)); #define fillchar(a,x) memset(a, x, sizeof (a)) #define faster ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); template <typename T1, typename T2> bool minimize(T1 &a, T2 b) {if (a > b) {a = b; return 1;} return 0;} template <typename T1, typename T2> bool maximize(T1 &a, T2 b) {if (a < b) {a = b; return 1;} return 0;} const int N = 1e6 + 6; const int mod = 1e9 + 7; const int base = 31; const int inf = 1e9; void add(ll &x, const ll y){ x+= y; if(x>=mod) x-= mod; } int n, L; pair<double, double> a[N]; double delta(double r, double dis){ return sqrt(r*r - dis*dis); } bool check(double x){ double cur = 0; fo(i, 1, n){ double val = delta(x, a[i].se); if(a[i].fi - val <= cur) cur = max(cur, a[i].fi + val); } return cur >= L; } signed main() { faster // in("task.inp"); // out("task.out"); // out("task.ans"); cin >> n >> L; fo(i, 1, n) cin >> a[i].fi >> a[i].se; double l = 1; double r = 1.5e9; while(r - l >= 1e-3){ double mid = (r + l)/2; if(check(mid)) r = mid; else l = mid; } cout << fixed << setprecision(4) << l; return 0; }
#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...