begin
var N, A, B, C, D: integer;
Readln(N, A, B, C, D);
if A > C then (A, B, C, D) := (C, D, B, A);
var s := 1.To(A - 1);
if B < C then // ( ) [ ]
s := s + B.Downto(A) + (B + 1).To(C - 1) +
D.Downto(C) + (D + 1).To(N)
else
if D < B then // ( [ ] )
begin
s := s + SeqGen(C - A, t -> B - t) +
SeqGen(D - C + 1, t -> t + A + B - D) +
SeqGen(B - D, t -> A - t + B - D - 1) + (B + 1).To(N)
end
else // ( [ ) ]
begin
s := s + SeqGen(C - A, t -> B - t) +
SeqGen(D - B, t -> D - t) + SeqGen(B - C + 1, t -> A + t) +
(D + 1).To(N);
end;
s.Println;
end.
Задачки такого типа не имеют однозначного решения, можно предложить нескольео вариантов и все они будут правильные. Слишком мало членов дано.
Вот мои версии.
а. 1; 3; 6; 4; 11; 5; 16; 6 (на нечётных местах всё время +5, на чётных +1)
б. 9; 7; 10; 4; 11; 1; 12; -2; ... (на нечётных +1, на чётных -3)
в. 3; 2; 1; 6; 5; 4; 9; 8; 7; 12; 11; 10... (тройки n;n-1;n-2; первое число тройки - последовательные числа, кратные 3)
Могу предложить ещё несколько ДРУГИХ вариантов продолжения последовательностей и все они, повторюсь, будут ПРАВИЛЬНЫМИ.
Одно только замечание: ВСЕГДА нужно указывать алгоритм или формулу, по которой последовательность строится(продолжается).
x:=2
y:=5*2=10
y:=10+5=15
y:=15*2=30
y:=30+6=36
y:=36*2=72
y:=72+7=79