Есть n интервалов, к ним надо добавить еще один. Новый интервал вставляется без изменений, существующие пересекающиеся интервалы сокращаются так, чтобы не пересекаться с новым. Если новый интервал оказывается «внутри» существующего, тот разрывается на 2 интервала. Примеры:
[1, 4] + [[5, 8]] => [ [1, 4], [5, 8] ]
[1, 6] + [[5, 8]] => [ [1, 6], [7, 8] ]
[6, 9] + [[5, 8]] => [ [5, 5], [6, 9] ]
[5, 6] + [[1, 9]] => [ [1, 4], [5, 6], [7, 9] ]
[1, 9] + [[5, 6]] => [ [1, 9] ]
[3, 8] + [[1, 4], [5, 6], [7, 10]] => [ [1, 2], [3, 8], [9, 10] ]
Есть тут олимпиадник-кун, который знает какую-нибудь красивую реализацию алгоритма в один проход массива и чтобы не перебирать каждый кейс.
UPD. Для проверки вхождения задачу можно не решать. Достаточно добавлять новые интервалы в начало массива, чтобы они пересекали всё, что было до них.