Подсчитать количество столбцов массива, элементы которых упорядочены по убыванию. В...

0 голосов
73 просмотров

Подсчитать количество столбцов массива, элементы которых упорядочены по убыванию. В Паскаль


Информатика (145 баллов) | 73 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в массиве:');
  var m:=ReadInteger('Количество колонок в массиве:');
  Writeln('*** Исходный массив [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var k:=0;
  foreach var column in a.Cols do
    if column.Zip(column.OrderByDescending(x->x),(x,y)->x=y).All(x->x=True)
    then k+=1;
  Writeln('k=',k)
end.

Пример
Количество строк в массиве: 3
Количество колонок в массиве: 9
*** Исходный массив [3,9] ***
  42  29 -18 -13  75 -55  73 -41 -34
 -13 -25  62 -83  80  83  70 -75  91
 -59  45  87  45  18 -87  62   9  27
------------------------------------
k=2
(150k баллов)