Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.59 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.PrintWriter;
  4. import java.util.Arrays;
  5. import java.util.Scanner;
  6.  
  7. public class B {
  8.  
  9.     public static void main(String[] args) throws FileNotFoundException {
  10.         Scanner in = new Scanner(new File("input.txt"));
  11.         PrintWriter out = new PrintWriter("output.txt");
  12.         int T = in.nextInt();
  13.         for (int i = 0; i < T; i++) {
  14.             String s = "Case #" + (i + 1) + ": " + new B().solve(in);
  15.             out.println(s);
  16.             System.out.println(s);
  17.         }
  18.         out.close();
  19.     }
  20.  
  21.     private String solve(Scanner in) {
  22.         int c = in.nextInt();
  23.         int d = in.nextInt();
  24.         int[] x = new int[1000000];
  25.         int n = 0;
  26.         for (int i = 0; i < c; i++) {
  27.             int p = in.nextInt();
  28.             int v = in.nextInt();
  29.             for (int j = 0; j < v; j++) {
  30.                 x[n++] = p;
  31.             }
  32.         }
  33.         Arrays.sort(x, 0, n);
  34.         double l = 0;
  35.         double r = 1e20;
  36.         while (true) {
  37.             double m = (l + r) * .5;
  38.             if (m == l || m == r) break;
  39.             double ll = -1e20;
  40.             boolean ok = true;
  41.             for (int i = 0; i < n; i++) {
  42.                 ll = ll + d;
  43.                 if (x[i] + m < ll) {
  44.                     ok = false;
  45.                 } else {
  46.                     ll = Math.max(ll, x[i] - m);
  47.                 }
  48.             }
  49.             if (ok) {
  50.                 r = m;
  51.             } else {
  52.                 l = m;
  53.             }
  54.         }
  55.         return "" + (l);
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement