Вася придумал робота-шифратора, и сейчас пишет для него программы. шифратор работает со строками. до сегодняшнего дня робот умел выполнять только команду cut(x), она означает, что нужно взять поданную на вход роботу строку, разрезать ее пополам после символа с номером x, символы второй части записать в обратном порядке, затем две части переставить местами и склеить обратно в целую строку (символы строки нумеруются слева направо начиная с 1). например, если робот работает со строкой алгоритм и выполняет команду cut(4), то результатом его работы будет строка мтиралго. если после этого робот выполнит команду cut(1), то получится строка огларитм. сегодня вася написал новую команду mcut. например, mcut(4, 1, 3) означает, что робот сначала выполняет команду cut(4), затем для получившейся строки команду cut(1), затем для получившейся строки команду cut(3). на вход роботу подали строку абвгдежз, после чего он выполнил команду mcut(3, 7, 6, 5, 1) 2019 раз подряд (после первого выполнения команды mcut вторая выполняется для полученной строки и так далее). какая строка в итоге получилась?
таблица истинности:
X Y Z X+¬Y Z⇒(X+¬Y) ¬X F
0 0 0 1 1 1 1
0 0 1 1 1 1 1
0 1 0 0 1 1 1
0 1 1 0 0 1 1
1 0 0 1 1 0 1
1 0 1 1 1 0 1
1 1 0 1 1 0 1
1 1 1 1 1 0 1
F =1 тождественно истинна ,
так как её значения равны 1 при любых X,Y,Z
type ar=array[1..n+1] of integer;
var
a:ar; i,p:integer;
procedure pr(var a:ar; p:integer; var k:integer);
begin
k:=1;
while a[k]<>p do k:=k+1;
end;
begin
Randomize;
writeln('Массив A:');
for i:=1 to n do
begin
a[i]:=random(31);
write(a[i]:4);
end;
writeln;
p:=17;
a[n+1]:=p;
pr(a,p,i);
if i<n
then writeln('Значение 17 найдено, номер элемента = ',i)
else writeln('Значения 17 в массиве нет');
end.
Пример:
Массив A:
14 5 7 17 25 15 28 0 24 0
Значение 17 найдено, номер элемента = 4