using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
interval _interval = new interval();
List<int[]> intervals = new List<int[]>();
intervals.Add(new int[]{1,3});
intervals.Add(new int[]{2,6});
intervals.Add(new int[]{8,10});
intervals.Add(new int[]{15,18});
int[][] arrIntervals = intervals.ToArray();
var output = _interval.Merge(arrIntervals);
foreach(int[] item in _interval.mergedIntervals){
Console.Write(" {0}-{1} ",item[0],item[1]);
bool isAvailable = false;
isAvailable = _interval.canMakeAppointment(new int[] {9,14});
if(isAvailable){Console.Write("Yes");}
else Console.Write("Nope");
public int[][] mergedIntervals;
public int[][] Merge(int[][] intervals) {
int[][] _intervals = intervals.OrderBy(item => item[0]).ToArray();
List<int[]> merged = new List<int[]>();
foreach(var interval in _intervals){
if(merged.Count == 0 || merged.Last()[1] < interval[0]){
merged.Last()[1] = Math.Max(merged.Last()[1],interval[1]);
mergedIntervals = merged.ToArray();
public bool canMakeAppointment(int[] toData){
foreach(int[] interval in mergedIntervals){
if(toData[0] >= interval[0] && toData[1] < interval[1]){