/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int[][] merge(int[][] intervals) {
if(intervals.length == 0) return intervals;
Arrays.
sort(intervals,
new Comparator
<int[]>(){ @Override
public int compare(int n1[], int[] n2){
return n1[0] == n2[0] ? n1[1] - n2[1] : n1[0] - n2[0];
}
});
List<int[]> ans = new ArrayList<>();
int[] member = intervals[0];
for(int[] in : intervals){
if(in[0] <= member[1]){
if(in[1] > member[1]){
member[1] = in[1];
}
}else{
ans.add(member);
member = in;
}
}
ans.add(member);
return ans.toArray(new int[ans.size()][2]);
}
{
// your code goes here
int[][] intervals = new int [4][2];
intervals[0][0] = 2;
intervals[0][1] = 4;
intervals[1][0] = 7;
intervals[1][1] = 9;
intervals[2][0] = 5;
intervals[2][1] = 8;
intervals[3][0] = 1;
intervals[3][1] = 3;
int[][] merged = merge(intervals);
for(int i = 0; i < merged.length; i++){
System.
out.
println(merged
[i
][0] + " - " + merged
[i
][1]); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXN0YXRpYyBpbnRbXVtdIG1lcmdlKGludFtdW10gaW50ZXJ2YWxzKSB7CiAgICAgICAgaWYoaW50ZXJ2YWxzLmxlbmd0aCA9PSAwKSByZXR1cm4gaW50ZXJ2YWxzOwogICAgICAgIEFycmF5cy5zb3J0KGludGVydmFscywgbmV3IENvbXBhcmF0b3I8aW50W10+KCl7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoaW50IG4xW10sIGludFtdIG4yKXsKICAgICAgICAgICAgICAgIHJldHVybiBuMVswXSA9PSBuMlswXSA/IG4xWzFdIC0gbjJbMV0gOiBuMVswXSAtIG4yWzBdOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgTGlzdDxpbnRbXT4gYW5zID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgaW50W10gbWVtYmVyID0gaW50ZXJ2YWxzWzBdOwogICAgICAgIGZvcihpbnRbXSBpbiA6IGludGVydmFscyl7CiAgICAgICAgICAgIGlmKGluWzBdIDw9IG1lbWJlclsxXSl7CiAgICAgICAgICAgICAgICBpZihpblsxXSA+IG1lbWJlclsxXSl7CiAgICAgICAgICAgICAgICAgICAgbWVtYmVyWzFdID0gaW5bMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgYW5zLmFkZChtZW1iZXIpOwogICAgICAgICAgICAgICAgbWVtYmVyID0gaW47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYW5zLmFkZChtZW1iZXIpOwogICAgICAgIHJldHVybiBhbnMudG9BcnJheShuZXcgaW50W2Fucy5zaXplKCldWzJdKTsKICAgIH0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCWludFtdW10gaW50ZXJ2YWxzID0gbmV3IGludCBbNF1bMl07CgkJaW50ZXJ2YWxzWzBdWzBdID0gMjsKCQlpbnRlcnZhbHNbMF1bMV0gPSA0OwoJCQoJCWludGVydmFsc1sxXVswXSA9IDc7CgkJaW50ZXJ2YWxzWzFdWzFdID0gOTsKCQkKCQlpbnRlcnZhbHNbMl1bMF0gPSA1OwoJCWludGVydmFsc1syXVsxXSA9IDg7CgkJCgkJaW50ZXJ2YWxzWzNdWzBdID0gMTsKCQlpbnRlcnZhbHNbM11bMV0gPSAzOwoJCQoJCWludFtdW10gbWVyZ2VkID0gbWVyZ2UoaW50ZXJ2YWxzKTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgbWVyZ2VkLmxlbmd0aDsgaSsrKXsKCQkJU3lzdGVtLm91dC5wcmludGxuKG1lcmdlZFtpXVswXSArICIgLSAiICsgbWVyZ2VkW2ldWzFdKTsKCQl9CgkJCgkJCgl9Cn0=