Submission #1083685

#TimeUsernameProblemLanguageResultExecution timeMemory
1083685vjudge1Mobile (BOI12_mobile)C++17
0 / 100
590 ms32404 KiB
#include <iostream> #include <vector> #include <cmath> #include <iomanip> using namespace std; // Function to check if a given radius R can cover the entire highway bool canCoverAllPoints(const vector<pair<double, double>>& stations, double R, double L) { double coveredUntil = 0.0; for (const auto& station : stations) { double xi = station.first; double yi = station.second; if (yi > R) continue; // This base station is too far away to help // Calculate the maximum x-range this station can cover double d = sqrt(R * R - yi * yi); double coverageStart = max(0.0, xi - d); double coverageEnd = xi + d; // Extend the coverage coveredUntil = max(coveredUntil, coverageEnd); if (coveredUntil >= L) return true; // Covered the entire highway } return coveredUntil >= L; } int main() { int N; double L; cin >> N >> L; vector<pair<double, double>> stations(N); for (int i = 0; i < N; ++i) { double xi, yi; cin >> xi >> yi; stations[i] = {xi, yi}; } // Binary search for the smallest possible R double low = 0.0; double high = 1e9; double epsilon = 1e-4; // Precision to ensure accuracy within 1e-3 while (high - low > epsilon) { double mid = (low + high) / 2.0; if (canCoverAllPoints(stations, mid, L)) { high = mid; // Try smaller radius } else { low = mid; // Increase radius } } cout << fixed << setprecision(6) << high << endl; return 0; }

Compilation message (stderr)

mobile.cpp: In function 'bool canCoverAllPoints(const std::vector<std::pair<double, double> >&, double, double)':
mobile.cpp:20:16: warning: unused variable 'coverageStart' [-Wunused-variable]
   20 |         double coverageStart = max(0.0, xi - d);
      |                ^~~~~~~~~~~~~
#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...