PASCALABCNET Дан набор из N целых положительных чисел. Для каждого числа вычисляется...

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

PASCALABCNET
Дан набор из N целых положительных чисел. Для каждого числа вычисляется сумма двух последних цифр в его десятичной записи (для однозначных чисел предпоследняя цифра считается равной нулю). Необходимо определить, какая сумма при этом получается чаще всего. Если таких сумм несколько, необходимо вывести наибольшую из них.
Напишите эффективную по времени и по памяти программу для решения этой задачи.
Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.


Информатика (108 баллов) | 43 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var a:array[1..18] of integer;
s,i,x,n:integer;
begin
for i:=1 to 18 do a[i]:=0;
readln(n);
for i:=1 to n do begin
readln(x);
s:=x mod 10;
x:=x div 10;
s:=(x mod 10)+s;
a[s]:=a[s]+1;
end;
s:=1;
for i:=2 to 18 do if a[i]>=a[s] then s:=i;
writeln(s);
end.



(1.5k баллов)
0

Исправьте, где массив array 0 до 18; for 0 to 18; s=0; for i 1 to 18; я не учла что сумма может быть 0