Форум » Обработка числовых последовательностей » Новая 27 » Ответить

Новая 27

gleb: Здравствуйте! Объясните, эффективна ли моя программа? Условие: На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все тройки различных элементов последовательности(элементы тройки не обязаны стоять в последовательности рядом, порядок элементов в тройке не важен). Необходимо определить количество троек, в которых сумма элементов делится без остатка на 3. Описание входных и выходных данных В первой строке входных данных задается количество чисел N(1<=N<=1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000. В качестве результата программа должна напечатать одно число: количество троек, в которых сумма элементов делится без остатка на 3. Пример входных данных: 5 1 2 3 4 5 Пример выходных данных: 4 Пояснение: (1+2+3, 1+3+5, 2+3+4, 3+4+5) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ мое решение: N = int(input()) k = [0] * 3 for i in range(N): _a = int(input()) _k[a % 3] += 1 x = 0 if k[0] >= 3: _d = 2 #разность между kx и (kx + 1) _x = 1 #количество троек, где все числа кратны 3 _kx = 3 #количество чисел, кратных 3 _while kx != k[0]: __kx += 1 __x += d __d += 1 print(k[0] * k[1] * k[2] + x) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ответов - 0



полная версия страницы