제출 #1237893

#제출 시각아이디문제언어결과실행 시간메모리
1237893joeyddMobile (BOI12_mobile)C++20
50 / 100
1096 ms16048 KiB
#include <algorithm>
#include <array>
#include <bitset>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <deque>
#include <fstream>
#include <functional>
#include <future>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <list>
#include <locale>
#include <map>
#include <mutex>
#include <numeric>
#include <optional>
#include <queue>
#include <random>
#include <set>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using namespace std;
#define endl "\n"
using ll = long long;
using ull = unsigned long long;

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  /*freopen("name.in", "r", stdin);
  freopen("name.out", "w", stdout);*/
  double n, trashL;
  cin >> n >> trashL;
  vector<pair<double, double>> p(n);
  for (auto &pi : p) {
    cin >> pi.first >> pi.second;
  }
  double l = 0, r = 1.5e9;
  while (r - l >= 1e-3) {
    double mid = (double)(l + r) / (double)2;
    double pos = 0;
    for (int i = 0; i < n; i++) {
      double d = sqrtl(mid * mid - p[i].second * p[i].second);
      double a = p[i].first - d, b = p[i].first + d;
      if (a <= pos) {
        pos = max(pos, b);
      }
    }
    if (pos >= trashL) {
      r = mid;
    } else {
      l = mid;
    }
  }
  cout << fixed << setprecision(5) << l << endl;
  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...