// PascalABC.NET 3.2, сборка 1436 от 01.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadlnInteger('Количество строк: '); var a:=new string[n]; for var i:=0 to n-1 do a[i]:=ReadlnString; Writeln('*** РЕЗУЛЬТАТ ***'); a:=a.Select(s->(s,s.ToCharArray.Where(c->c=' ').Count)) .OrderBy(vk->vk[1]).Select(vk->vk[0]).ToArray; a.Println(NewLine) end.
Пример Количество строк: 4 Это первая стро ка А это вторая строка Это- третья Четвертая - последняя *** РЕЗУЛЬТАТ *** Это- третья Четвертая - последняя Это первая стро ка А это вторая строка
Во вложении на верхнем рисунке показана схема двумерного массива (матрицы), размером 100х100. Желтые кружки - элементы массива. Выделена главная диагональ матрицы (условие, когда номер строки равен номеру столбца), а треугольники с заливкой выделяют верхнюю и нижнюю треугольные матрицы. Если исходная матрица квадратная, то количество элементов в обоих треугольных матрицах одинаково. На нижнем рисунке описывается заполнение элементов массива. Строки нижней треугольной матрицы заполняется номерами строки (зеленая область), а столбцы верхней треугольной матрицы - номерами столбцов с обратным знаком (красная область). При внимательном рассмотрении можно понять, что каждому элементу зеленой области будет сопоставлен элемент красной с таким же значением, но с противоположным знаком. Следовательно, сумма этих элементов будет равна нулю. Осталось найти сумму элементов главной диагонали. Там будут элементы -1, -2, -3, ... -99, -100. Это сумма первых 100 чисел натурального ряда, образующих арифметическую прогрессию, взятая с противоположным знаком.
ответ: -5050
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку