1. Обратим внимание, что обе последовательности содержат по 8 цифр. Поскольку каждая буква кодируется двумя цифрами, то приведенные последовательности кодируют четырехбуквенные слова. Такое слово одно: "пока". Но в последовательности 11321220 последняя буква кодируется числом 20, а нам известно, что это код буквы "е". В слове "пока" нет такой буквы, поэтому "пока" - это 11321022 и получаем коды букв: п - 11 о - 32 к - 10 а - 22 к о л о к о л 10 32 хх 32 10 32 хх Буквы "л" у нас нет и в таком виде задача не имеет решения. Но, скорее всего, в условии ошибка и вместо "после" надо читать "поле". Проверим, нет ли противоречий п о л е 11 32 12 20 Противоречий с уже определенными кодами букв нет, следовательно 12 - это "л" и тогда ответ будет
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var t:=a.Partition((x,i)->i.IsEven); var s:=t[0].Interleave(t[1].OrderByDescending(x->x)); if a.Length.IsOdd then a:=s.ToArray+Arr(a.Last) else a:=s.ToArray; a.Println end.
п - 11
о - 32
к - 10
а - 22
к о л о к о л
10 32 хх 32 10 32 хх
Буквы "л" у нас нет и в таком виде задача не имеет решения.
Но, скорее всего, в условии ошибка и вместо "после" надо читать "поле".
Проверим, нет ли противоречий
п о л е
11 32 12 20
Противоречий с уже определенными кодами букв нет, следовательно 12 - это "л" и тогда ответ будет
10 32 12 32 10 32 12
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var t:=a.Partition((x,i)->i.IsEven);
var s:=t[0].Interleave(t[1].OrderByDescending(x->x));
if a.Length.IsOdd then a:=s.ToArray+Arr(a.Last)
else a:=s.ToArray;
a.Println
end.
Примеры
n= 14
42 -8 41 -26 -28 -44 -27 -24 13 -20 16 19 37 -26
42 19 41 -8 -28 -20 -27 -24 13 -26 16 -26 37 -44
n= 15
-21 41 32 8 -23 23 23 9 35 45 -42 37 -11 -8 22
-21 45 32 41 -23 37 23 23 35 9 -42 8 -11 -8 22