Submission #1067980

#TimeUsernameProblemLanguageResultExecution timeMemory
1067980Oz121Mobile (BOI12_mobile)Java
100 / 100
580 ms69236 KiB
import java.io.*; import java.util.*; public class mobile { public static int num; public static double[][] arr; public static void main(String[] args) throws IOException { FastIO io = new FastIO(); num = io.nextInt(); int L = io.nextInt(); arr = new double[num][2]; for (int i = 0;i<num;i++) { arr[i][0] = io.nextInt(); arr[i][1] = io.nextInt(); } double l = 0; double h = 2*Math.pow(10,9); while (h-l>Math.pow(10,-3)) { double r = (l+h)/2; boolean work = true; double right = 0; for (int i = 0;i<num;i++) { if (r*r-arr[i][1]*arr[i][1]<0) continue; double sqrt = Math.sqrt(r*r-arr[i][1]*arr[i][1]); if (arr[i][0]+sqrt<0) continue; double newL = arr[i][0]-sqrt; double newR = arr[i][0]+sqrt; if (newL<=right) right = Math.max(right, newR); } work = right>=L; if (work) h = r; else l = r; } io.println((l+h)/2); io.close(); } public static class FastIO extends PrintWriter { private InputStream stream; private byte[] buf = new byte[1 << 16]; private int curChar; private int numChars; // standard input public FastIO() { this(System.in, System.out); } public FastIO(InputStream i, OutputStream o) { super(o); stream = i; } public FastIO(String i, String o) throws IOException { super(new FileWriter(o)); stream = new FileInputStream(i); } // throws InputMismatchException() if previously detected end of file private int nextByte() { if (numChars == -1) { throw new InputMismatchException(); } if (curChar >= numChars) { curChar = 0; try { numChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if (numChars == -1) { return -1; // end of file } } return buf[curChar++]; } public int nextInt() { // nextLong() would be implemented similarly int c; do { c = nextByte(); } while (c <= ' '); int sgn = 1; if (c == '-') { sgn = -1; c = nextByte(); } int res = 0; do { if (c < '0' || c > '9') { throw new InputMismatchException(); } res = 10 * res + c - '0'; c = nextByte(); } while (c > ' '); return res * sgn; } } }
#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...