Submission #1211040

#TimeUsernameProblemLanguageResultExecution timeMemory
1211040sosukeMobile (BOI12_mobile)Java
In queue
0 ms0 KiB
import java.util.*; import java.io.*; public class mobile { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); int len = Integer.parseInt(st.nextToken()); long[][] p = new long[n][2]; for (int i = 0; i < n; i++) { st = new StringTokenizer(br.readLine()); p[i][0] = Long.parseLong(st.nextToken()); // x p[i][1] = Long.parseLong(st.nextToken()); // y } double l = 1.0; double r = 1.5e9; while (r - l > 1e-3 + 1e-9) { // Adding small buffer for floating point precision issues double mid = (l + r) / 2; double curr = 0; for (int i = 0; i < n; i++) { long x = p[i][0]; long y = p[i][1]; double delta = Math.sqrt(mid * mid - y * y); double a = x - delta; double b = x + delta; if (a <= curr) { curr = Math.max(curr, b); } } if (curr >= len) { r = mid; } else { l = mid; } } System.out.printf("%.4f\n", l); } }