Условие задачи
Дана последовательность натуральных чисел 1, 2, 3, …, N (1 ≤ N ≤ 1000). Необходимо сначала расположить в обратном порядке часть этой последовательности от элемента с номером A до элемента с номером B, а затем от C до D (A < B; C < D; 1 ≤ A, B, C, D ≤ N).
Формат входного файла
Даны числа N, A, B, C, D.
Формат выходного файла
Требуется вывести полученную последовательность.
Примеры
Ввод Вывод
9 2 5 6 9 1 5 4 3 2 9 8 7 6
9 3 6 5 8 1 2 6 5 8 7 3 4 9
Решение задачи (Delphi)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
program z1457; {$APPTYPE CONSOLE} uses SysUtils; var x:array[1..1000] of word; n,i,a,b,c,d:word; procedure replace(a,b:word); var i,n,tmp:word; begin n:=(b-a+1) div 2; i:=0; while i<n do begin tmp:=x[i+a]; x[i+a]:=x[b-i]; x[b-i]:=tmp; inc(i); end; end; Begin read(n,a,b,c,d); for i:=1 to n do x[i]:=i; replace(a,b); replace(c,d); for i:=1 to n do write(x[i],' '); readln; readln; end. |