Advertisement
ivanov_ivan

CriticalBreakpoint

May 5th, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.00 KB | None | 0 0
  1. import java.math.BigInteger;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class CriticalBreakpoint {
  9.     public static void main(String[] args) {
  10.         Scanner sc = new Scanner(System.in);
  11.  
  12.         List<List<Long>> coordinates = new ArrayList<>();
  13.  
  14.         String input = sc.nextLine();
  15.         boolean isCriticalExist = true;
  16.  
  17.         BigInteger criticalRatio = new BigInteger("0");
  18.  
  19.         while (!input.equals("Break it.")){
  20.             coordinates.add(Arrays.stream(input.split("\\s+"))
  21.                     .map(Long::parseLong)
  22.                     .collect(Collectors.toList()));
  23.             input = sc.nextLine();
  24.         }
  25.  
  26.         for (List<Long> coorPair: coordinates) {
  27.  
  28.             BigInteger currCalc = new BigInteger("" +
  29.                     ((coorPair.get(3) + coorPair.get(2))
  30.                             - (coorPair.get(0) + coorPair.get(1))))
  31.                     .abs();
  32.  
  33.             if (!currCalc.equals(BigInteger.ZERO) && !currCalc.equals(criticalRatio) && criticalRatio.equals(BigInteger.ZERO)){
  34.                 criticalRatio = new BigInteger(currCalc.toString());
  35.             }
  36.             if (!currCalc.equals(BigInteger.ZERO) && !currCalc.equals(criticalRatio) && !criticalRatio.equals(BigInteger.ZERO)){
  37.                 System.out.println("Critical breakpoint does not exist.");
  38.                 isCriticalExist = false;
  39.                 break;
  40.             }
  41.         }
  42.  
  43.         if (isCriticalExist){
  44.             BigInteger pow = new BigInteger(criticalRatio.pow(coordinates.size()) + "");
  45.             BigInteger result = new BigInteger(String.valueOf(pow.remainder(new BigInteger(coordinates.size() + ""))));
  46.             for (List<Long> coordinate : coordinates) {
  47.                 System.out.print("Line: ");
  48.                 System.out.println(coordinate);
  49.             }
  50.             System.out.println("Critical Breakpoint: " + result.toString());
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement