using System.Collections.Generic;
using System.Collections;
public static void Main()
Console.WriteLine("Hello World");
List<Interval> example1 = new List<Interval>();
example1.Add(new Interval(1,3));
example1.Add(new Interval(6,9));
List<Interval> result = insertNewInterval(example1, new Interval(2,5));
List<Interval> example2 = new List<Interval>();
example2.Add(new Interval(1,2));
example2.Add(new Interval(3,5));
example2.Add(new Interval(6,7));
example2.Add(new Interval(8,10));
example2.Add(new Interval(12,16));
List<Interval> result2 = insertNewInterval(example2, new Interval(4,9));
public Interval(int start, int end){
public static List<Interval> insertNewInterval(List<Interval> list, Interval newInterval){
List<Interval> result = new List<Interval>();
foreach(Interval existingInterval in list){
if(newInterval.start > existingInterval.end){
result.Add(existingInterval);
}else if(newInterval.end < existingInterval.start){
newInterval = existingInterval;
}else if (newInterval.start <= existingInterval.end || newInterval.end >= existingInterval.start){
int start = Math.Min(existingInterval.start, newInterval.start);
int end = Math.Max(newInterval.end, existingInterval.end);
newInterval = new Interval(start, end);
public static void print(List<Interval> list){
foreach(Interval i in list){
String intervalString = String.Format("[{0},{1}]", i.start, i.end);
Console.Write(intervalString + " " );