using System.Collections.Generic;
public Interval(int s, int e)
public List<Interval> FindAllOverlappingInterval(List<Interval> A, List<Interval> B)
List<Interval> result = new List<Interval>();
while(i < A.Count && j < B.Count)
if(A[i].start <= B[j].start && A[i].end <= B[j].start)
else if(B[j].start <= A[i].start && B[j].end <= A[i].start)
else if((A[i].start >= B[j].start && A[i].start < B[j].end)||(B[j].start >= A[i].start && B[j].start < A[i].end))
int start = Math.Max(A[i].start, B[j].start);
int end = Math.Min(A[i].end, B[j].end);
result.Add(new Interval(start,end));
public static void Main()
Console.WriteLine("Hello World o");
List<Interval> A = new List<Interval>();
List<Interval> B = new List<Interval>();
A.Add(new Interval(1,35));
B.Add(new Interval(1,3));
B.Add(new Interval(4,5));
B.Add(new Interval(9,14));
B.Add(new Interval(18,20));
B.Add(new Interval(21,24));
B.Add(new Interval(25,31));
Program myObj = new Program();
List<Interval> result = myObj.FindAllOverlappingInterval(A,B);
private void Display(List<Interval> A)
Console.WriteLine("Overlapping intervals are");
foreach(Interval interval in A)
Console.Write("{0} {1}",interval.start, interval.end);