Для начала считаем кол-во цифр в данном сообщении: 7. Значит получается, что максимальное кол-во букв с двойным обозначением (тобиш в и г) тут 3, т.к 4 - уже 8 цифр. Можно рассмотреть все 4 случая: 1) все 7 - буквы буквы с одной цифрой (а и б) - 1 вариант расположения (очевидно) 2) 1 буква - в или г: эту одну букву можно расположить 7-1 = 6 вариантами, то есть еще + 6 3) 2 буквы - в или г. Для выбора местоположения первой из этих букв есть 6 вариантов расположения (как мы уже поняли из 2) ), а для второго остается 7-2= 5 цифр, а значит 4 позиции. Итого 5*4 = 20 и делим это пополам, ибо половина случаев - симметрична (просто меняются местами двойные буквы - а нам без разницы). Получается 20/2= 10 4) 3 буквы - буквы в или г: Рассмотрим от оставшейся одиночной буквы: у нее есть 7 вариантов расположения, вот и все. 1+6+10+7 = 24
VAR i, j, k: Integer; a, b: Array [1..5] of Array [1..5] of Integer; BEGIN For i := 1 to 5 do For j := 1 to 5 do Read(a[i][j]);
k := 1; For i := 1 to 5 do If (Odd(i)) then For j := 5 downto 1 do begin b[i][j] := a[((k-1) div 5)+1][((k-1) mod 5)+1]; Inc(k); End Else For j := 1 to 5 do begin b[i][j] := a[((k-1) div 5)+1][((k-1) mod 5)+1]; Inc(k); End;
For i := 1 to 5 do begin For j := 1 to 5 do Write(b[i][j]:2, ' '); Writeln; End; END.
1) все 7 - буквы буквы с одной цифрой (а и б) - 1 вариант расположения (очевидно)
2) 1 буква - в или г: эту одну букву можно расположить 7-1 = 6 вариантами, то есть еще + 6
3) 2 буквы - в или г. Для выбора местоположения первой из этих букв есть 6 вариантов расположения (как мы уже поняли из 2) ), а для второго остается 7-2= 5 цифр, а значит 4 позиции. Итого 5*4 = 20 и делим это пополам, ибо половина случаев - симметрична (просто меняются местами двойные буквы - а нам без разницы). Получается 20/2= 10
4) 3 буквы - буквы в или г: Рассмотрим от оставшейся одиночной буквы: у нее есть 7 вариантов расположения, вот и все.
1+6+10+7 = 24
i, j, k: Integer;
a, b: Array [1..5] of Array [1..5] of Integer;
BEGIN
For i := 1 to 5 do
For j := 1 to 5 do Read(a[i][j]);
k := 1;
For i := 1 to 5 do
If (Odd(i)) then
For j := 5 downto 1 do begin
b[i][j] := a[((k-1) div 5)+1][((k-1) mod 5)+1]; Inc(k); End
Else
For j := 1 to 5 do begin
b[i][j] := a[((k-1) div 5)+1][((k-1) mod 5)+1]; Inc(k); End;
For i := 1 to 5 do begin
For j := 1 to 5 do Write(b[i][j]:2, ' ');
Writeln; End;
END.