Является ли интервалом объединение интервалов - C#
Формулировка задачи:
2. Даны действительные числа a1, a2, ... , a2n. Эти точки определяют n интервалов числовой оси (a1, a2), (a3, a4), ..., (a2n-1, a2n). Является ли интервалом объединение этих интервалов? Если да, то указать концы этого интервала.
Прошу объяснений,ибо не понимаю как определить заданные требования.
Решение задачи: «Является ли интервалом объединение интервалов»
textual
Листинг программы
using System;
namespace FirtsApp
{
class Program
{
class Interval: IComparable
{
public int Begin { get; set; }
public int End { get; set; }
public int CompareTo(object obj)
{
return Begin.CompareTo(((Interval)obj).Begin);
}
}
static void Main()
{
int[] arr = { -1, 2, -2, 0, 4, 8, 2, 3, 1, 5 };
Interval[] intervals = new Interval[arr.Length / 2];
for (int i = 0; i < arr.Length; i+=2)
intervals[i / 2] = new Interval { Begin = arr[i], End = arr[i + 1] };
Array.Sort(intervals);
int bigestEnd = intervals[0].End;
bool continuous = true;
for (int i = 1; i < intervals.Length; ++i)
{
if (bigestEnd < intervals[i].Begin)
{
continuous = false;
break;
}
if (bigestEnd < intervals[i].End)
bigestEnd = intervals[i].End;
}
if (continuous)
Console.WriteLine("Continuous interval. Left border: {0}, right boder: {1}.",
intervals[0].Begin, bigestEnd);
else
Console.WriteLine("Discontinued.");
}
}
}