Предмет: Информатика,
автор: kktrue
PASCAL: Двухмерный массив.
В метании молота состязается n спортсменов. Каждый из них сделал m бросков. Победителем считается тот спортсмен, у которого сумма результатов по всем броскам максимальна.
Если перенумеровать спортсменов числами от 0 до n-1, а попытки каждого из них - от 0 до m-1, то на вход программа получает массив A[n, m], состоящий из неотрицательных целых чисел. Программа должна определить максимальную сумму чисел в одной строке и вывести на экран эту сумму и номер строки, для которой достигается эта сумма.
Входные данные
Программа получает на вход два числа n и m, являющиеся числом строк и столбцов в массиве. Далее во входеом потоке идет n строк по m чисел, являющихся элементами массива.
Выходные данные
Программа должна вывести 2 числа: сумму и номер строки, для которой эта сумма достигается. Если таких срок несколько, то выводится номер наименьшей из них. Не забудьте, что нумерация строк (спортсменов) начинается с 0.
Примеры
входные данные выходные данные
2 2 9
5 4 1
3 5
Аноним:
Если это массив 2х2, и в строках (5 4) (3 5), то суммы 9 и 8, поэтому сумма 9 достигается в строке не 1, а 0. Где-то ошибка в примере.
Ответы
Автор ответа:
2
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018
Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2;
var a:=ReadMatrInteger(n,m);
var i:=a.Rows.Select(row->row.Sum).ToArray.IndexMax;
Writeln(a.Row(i).Sum,' ',i)
end.
Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2;
var a:=ReadMatrInteger(n,m);
var i:=a.Rows.Select(row->row.Sum).ToArray.IndexMax;
Writeln(a.Row(i).Sum,' ',i)
end.
Приложения:
если базироваться на примерных вводных данных, то должно быть так:
2 2
5 4
3 5
а выходные должны быть
9 1
2 2
5 4
3 5
а выходные должны быть
9 1
и можно немного попроще: через for, if...
Почему 9 1 - объясните?
Я считаю, что 9 0
2 2 - это не строка данных, это размеры 2х2 массива
Поэтому сумма 9 достигнута в строке номер 0.
Касаемо "попроще". Попроще - это минимальный объем программы и минимальное время на ее написание. А "через for, if... " - это не попроще, это полтора-два десятка содержательных строк кода вместо четырех. Оно мне зачем? Вы же не указали, в какой версии Паскаля Вам решение нужно, не дали ограничений. Кто это будет тут за 8 баллов тратить 10-15 минут на кодирование и отладку этой ерунды?
тоже верно, но все равно, спасибо.
Видите ли, давая ответы, я никогда не нарушаю здешних Правил, поэтому если ответ не устраивает, автору вопроса надо винить исключительно себя за неточную формулировку. Ибо каков вопрос - таков и ответ!
Похожие вопросы
Предмет: Английский язык,
автор: sanwak
Предмет: Математика,
автор: mainaakhmedova2003
Предмет: Математика,
автор: hh2895293
Предмет: Литература,
автор: lanakartashova
Предмет: Алгебра,
автор: demin20021