Advertisement
valchak

Overlapping Intervals

Oct 1st, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class p06_Overlapping_Intervals {
  6.     public static void main(String[] args) throws IOException {
  7.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  8.  
  9.         int rows = Integer.parseInt(reader.readLine());
  10.         int cols = 2;
  11.  
  12.         int[][] intervalsMatrix = new int[rows][cols];
  13.  
  14.         for (int row = 0; row < rows; row++) {
  15.             String[] reminder = reader.readLine().split(",");
  16.             for (int col = 0; col < cols; col++) {
  17.                 intervalsMatrix[row][col] = Integer.parseInt(reminder[col]);
  18.             }
  19.         }
  20.  
  21.         sortIntervalsMatrix(intervalsMatrix);
  22.  
  23.         System.out.println(hasOverlappingIntervals(intervalsMatrix));
  24.     }
  25.  
  26.     private static boolean hasOverlappingIntervals(int[][] intervalsMatrix) {
  27.  
  28.         for (int i = 0; i < intervalsMatrix.length-1; i++) {
  29.             int endOfFirstTimeInterval = intervalsMatrix[i][1];
  30.             int startOfSecondTimeInterval = intervalsMatrix[i+1][0];
  31.             if( endOfFirstTimeInterval >= startOfSecondTimeInterval){
  32.                 return true;
  33.             }
  34.         }
  35.         return false;
  36.     }
  37.  
  38.     private static void sortIntervalsMatrix(int[][] intervalsMatrix) {
  39.         //Bubble sort
  40.         boolean swapped = true;
  41.         do{
  42.             swapped = false;
  43.             for (int i = 0; i < intervalsMatrix.length-1; i++) {
  44.  
  45.                 if(intervalsMatrix[i][0] > intervalsMatrix[i+1][0]){
  46.                     int tempRow = intervalsMatrix[i][0];
  47.                     int tempCol = intervalsMatrix[i][1];
  48.                     intervalsMatrix[i][0] = intervalsMatrix[i+1][0];
  49.                     intervalsMatrix[i][1] = intervalsMatrix[i+1][1];
  50.                     intervalsMatrix[i+1][0] = tempRow;
  51.                     intervalsMatrix[i+1][1] = tempCol;
  52.  
  53.                     swapped = true;
  54.                 }
  55.             }
  56.         }while(swapped == true);
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement