Задание Демо 2022
B файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число делится на 3, а сумма элементов пары не более максимального элемента последовательности, кратного 3. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
| Pascal | Python |
var a,i,k,maxch,maxsum:integer; mas:array of integer; begin Assign(Input,'17_demo22.txt'); mas:= new integer[0]; maxch:=-11000; maxsum:=-22000; while not eof do begin readln(a); mas:= mas + arr(a); if abs(a) mod 3 = 0 then maxch:= max(maxch,a); end; For i:=0 to length(mas)-2 do begin if ((abs(mas[i]) mod 3 = 0) or (abs(mas[i+1]) mod 3 = 0)) and (mas[i]+mas[i+1] <= maxch) then begin k += 1; maxsum:= max(maxsum,mas[i]+mas[i+1]); end; end; println(k,maxsum); end.
| f = open('17_demo22.txt') mas = [] maxch = -11000 for s in f: ch = int(s) mas.append(ch) if abs(ch) % 3 == 0: maxch = max(maxch,ch) k = 0 maxsum = -22000 for i in range(len(mas)-1): if ((abs(mas[i]) % 3 == 0) or (abs(mas[i+1] % 3 == 0))) and (mas[i]+mas[i+1] <= maxch): k += 1 maxsum = max(maxsum,mas[i]+mas[i+1]) print(k,maxsum) |
Открываем файл, считываем все значения в массив. Одновременно ищем максимальное значение которое делится на 3. Проходимся по массиву проверяя i-тый и i+1 элементы. Если хотя-бы один из них делится на 3 и сумма пары меньше максимального значения делящегося на три, то счётчик увеличиваем на единицу и проверяем сумму на максимальность.