Submission #1235287

#TimeUsernameProblemLanguageResultExecution timeMemory
1235287radaiosm7Mobile (BOI12_mobile)C++20
100 / 100
456 ms16072 KiB
#include <bits/stdc++.h>
using namespace std;
int n;
double len;
double x[1000005];
double y[1000005];
const double eps = 1e-4;

bool cover(double r) {
  double last = 0.0;

  for (int i=1; i <= n; ++i) {
    if (r < y[i]) continue;
    double d = sqrt(r*r-y[i]*y[i]);
    if (x[i]-d > last) continue;
    last = max(last, x[i]+d);
  }

  return (last >= len);
}

int main() {
  scanf("%d%lf", &n, &len);
  for (int i=1; i <= n; ++i) scanf("%lf%lf", &x[i], &y[i]);

  double l = 0.0;
  double r = 2000000000.0;

  while (r-l > eps) {
    double m = (l+r)/2.0;
    if (cover(m)) r = m;
    else l = m;
  }

  printf("%lf\n", l);
  return 0;
}

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:23:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |   scanf("%d%lf", &n, &len);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~
mobile.cpp:24:35: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |   for (int i=1; i <= n; ++i) scanf("%lf%lf", &x[i], &y[i]);
      |                              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...