Submission #1195178

#TimeUsernameProblemLanguageResultExecution timeMemory
1195178vk3601hMobile (BOI12_mobile)C++20
100 / 100
296 ms16072 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n;
long long len;
struct coordinates {long long x, y;} stations[N];

bool check(double res){
    double curr = 0;
    for (int i = 1; i <= n; ++i){
        double delta = sqrt(res * res - stations[i].y * stations[i].y);
        double l = stations[i].x - delta, r = stations[i].x + delta;
        if (l <= curr) curr = max(curr, r);
    }
    return curr >= len;
}

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

    double l = 0, r = 1.5e9, ans;
    while (r - l > 1e-3){
        double mid = (l + r) / 2;
        if (check(mid)) ans = mid, r = mid;
        else l = mid;
    }

    printf("%.4lf", ans);
    return 0;
}

Compilation message (stderr)

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