(надо составить программу либо на языке GNU C++ 5.4.0 либо на Pyton либо на Java JDK 1.8.0_171)
№1
Недавно Ваня и Даня играли в шахматы на перемене - и решили сделать из шахмат настоящую
головоломку. К счастью, это оказалось не так сложно, ведь у них в распоряжении оказалась не
просто доска 8 × 8, а доска n × m, а также n · m слонов.
Для начала (для будущего удобства) Ваня и Даня решили пронумеровать все клетки доски
змейкой, начиная с самой нижней клетки.
Как уже была сказано, у Вани и Дани в распоряжении есть очень много слонов, поэтому они и
будут «главными героями» их головоломки. Придуманная Ваней и Даней, головоломка заключается
в нахождение клетки с наибольшим значением magicchessp
, где magicchessp обозначает количество
итераций определенного алгоритма.
Сначала мы ставим слона в клетку с номером p, и пока у нас есть пустые клетки на поле, которые
бьются хоть одним слоном, мы будем выбирать из таких клеток минимальную по номеру – и ставить
туда слона. Количество итераций такого алгоритма и будет значением magicchessp
.
Теперь Даня и Ваня просят им с этой головоломкой, если известны n и m - размеры
доски. Но вам не требуется искать саму клетку с наибольшим magicchessp
, вам требуется найти
лишь максимальный magicchessp
.
№2
Сегодня на уроке зельеварения Ваня придумал для себя увлекательную игру. Сначала Ваня
ставит на числовой прямой три различных точки в целых координатах. После этого он может взять
одно из крайних чисел и переместить его в любую целую точку между двумя оставшимися, где
крайним мы называем минимальное или максимальное из чисел. Он повторяет это действие до тех
пор пока это возможно.
Например, если изначально выбрать точки {2, 4, 8}, после первого хода могут получится следующие комбинации чисел: {2, 3, 4}, {4, 5, 8}, {4, 6, 8}, {4, 7, 8}. В первом случае игра заканчивается
после первого же хода, в остальных случаях можно сделать еще хотя бы один ход.
Теперь Ване интересно, сколько ходов он может сделать для любой заданной тройки точек. К
сожалению Вани, зельеварение закончилось - и теперь он сам не успеет выяснить это ему!
дешифровки:
Const sh = '_.,';
Var
St : String;
i : Integer;
Function DeCode(S : String; Tabl : String; k : Integer) : String;
Var j,n : Integer;
Begin
For j:=1 to Length(S) do
Begin
n:=Pos(S[j],sh);
If n>0 then
Begin
n:=n+k;
While n>Length(sh) do n:=n-Length(sh);
While n<=0 do n:=n+Length(sh);
S[j]:=sh[n];
end
end;
DeCode:=S;
end;
Begin
St:='ЗЫФЙГФШРЦ . ШД';
Writeln(Decode(St,sh,-6));
//For i:=-10 to 10 do Writeln(Decode(St,sh,i));
end.