История изменений
Исправление qulinxao3, (текущая версия) :
затруднение только в несимметричности ( т/е если интервал из набора польностю покрыт новым(вставляемым) интервалом тогда новый давит - если же вставляемый покрыт уже имеющимся в наборе то имеющийся рвётся вставляемым) крч
далее везде A<=B и x<=y
Пусть [A,B] - добавляемый в набор -
для каждого интервала [x,y] из входного набора
((y<A)или(B<x)&&push(x,y)
||push(x,A-1)&&push(B+1,y)
push(A,B)
где push(q,p) is (q<=p)&&ДобавитьВвыходнойНабор([q,p]);return TRUE
т.е возможно 3 различных случая нового и очередного из набора:
- интервалы удаленны друг от друга тогда вход на выход
- перекрытие тогда на выход лишь та(те) часть входа что за пределами нового
Исходная версия qulinxao3, :
затруднение только в несимметричности ( т/е если интервал из набора польностю покрыт новым(вставляемым) интервалом тогда новый давит - если же вставляемый покрыт уже имеющимся в наборе то имеющийся рвётся вставляемым) крч
далее везде A<=B и x<=y
Пусть [A,B] - добавляемый в набор -
для каждого интервала [x,y] из входного набора
((y<A)или(B<x)&&push(x,y)
||((A<=x)и(y<=B))&&TRUE
||push(x,A-1)&&push(B+1,y)
push(A,B)
где push(q,p) is (q<=p)&&ДобавитьВвыходнойНабор([q,p]);return TRUE
т.е возможно 3 различных случая нового и очередного из набора:
- интервалы удаленны друг от друга тогда вход на выход
- новый полностью покрывает тогда на выход пусто
- частичное перекрытие тогда на выход лишь та часть входа что за пределами нового