Действия выполняются в обратном порядке. Последнее действие было "из нечетных цифр вычитается,а к четным прибавляется 1".Из нечетных цифр вычли 1 и они стали четными (при вычитании единицы меняется четность), с четными все то же самое, только наоборот. Значит нужно ко всем четным цифрам прибавить 1, а от нечетных отнять 1, тогда получится исходная цифра.3216 -> 2307.Итак, знаем, что на предпоследнем шаге было число 2307. Идем еще на шаг назад. "цифры,занимающие четные разряды (нумерация разрядов ведется справа налево начиная с нуля) циклически сдвигаются вправо,а нечетные - влево на количество позиций, равных номеру разряда". Опять же, делаем наоборот. Цифры на четных разрядах сдвигаем влево, а нечетные - вправо. Количество позиций не меняется, только направление.2307 -> 5117Пароль почты Васи: 5117.Традиционно проверочка...Имеем 5117.Семь сдвигаем вправо на 0.7 -> 7.Один сдвигаем влево на 1.1 -> 0.Один сдвигаем вправо на 2.1 -> 3.Пять сдвигаем влево на 3.5 -> 2.Получаем 2307.От нечетных цифр отнимаем 1, а к четным прибавляем.Получаем 3216. Что и было дано изначально.
var a, b, c, d, min, max: integer;
begin
// Min
readln(a, b, c, d);
if (a <= b) and (a <= c) and (a <= d) then min := a
else if (b <= a) and (b <= c) and (b <= d) then min := b
else if (c <= a) and (c <= b) and (c <= d) then min := c
else if (d <= a) and (d <= b) and (d <= c) then min := d;
// Max
if (a >= b) and (a >= c) and (a >= d) then max := a
else if (b >= a) and (b >= c) and (b >= d) then max := b
else if (c >= a) and (c >= b) and (c >= d) then max := c
else if (d >= a) and (d >= b) and (d >= c) then max := d;
writeln('Min: ', min);
writeln('Max: ', max);
end.