Задания
Версия для печати и копирования в MS Word
Тип 27 № 58494
i

Дана по­сле­до­ва­тель­ность на­ту­раль­ных чисел. Рас­сто­я­ние между эле­мен­та­ми по­сле­до­ва­тель­но­сти  — это раз­ность их по­ряд­ко­вых но­ме­ров. На­при­мер, если два эле­мен­та стоят в по­сле­до­ва­тель­но­сти рядом, рас­сто­я­ние между ними равно 1, если два эле­мен­та стоят через один  — рас­сто­я­ние равно 2 и так далее. Назовём парой любые два числа из по­сле­до­ва­тель­но­сти. Не­об­хо­ди­мо опре­де­лить ко­ли­че­ство пар, в ко­то­рых сумма эле­мен­тов и рас­сто­я­ние между ними имеют рав­ные остат­ки от де­ле­ния на 9.

Вход­ные дан­ные.

Файл А

Файл В

Пер­вая стро­ка вход­но­го файла со­дер­жит целое число N    общее ко­ли­че­ство чисел в на­бо­ре. Каж­дая из сле­ду­ю­щих N строк со­дер­жит одно число, не пре­вы­ша­ю­щее 109.

Вам даны два вход­ных файла (A и B), каж­дый из ко­то­рых имеет опи­сан­ную выше струк­ту­ру. В от­ве­те ука­жи­те два числа: сна­ча­ла ис­ко­мое ко­ли­че­ство пар для файла A, затем  — по­след­ние 6 цифр ис­ко­мо­го ко­ли­че­ства пар для файла B.

 

Ответ:

Спрятать решение

Ре­ше­ние.

При­ве­дем ре­ше­ние на языке Python для файла A.

f = list(map(int, open('27-A.txt').readlines()))

k = 0

for x in range(1, len(f)):

for y in range(x+1, len(f)):

if (f[y] + f[x]) % 9 == (y - x) % 9:

k += 1

print(k)

 

При­ве­дем ре­ше­ние на языке Python для файла В.

f = list(map(int, open('27-B.txt').readlines()))

li = [[0]*9 for i in range(9)]

count = 0

for i, p in enumerate(f[1:]):

for x in range(9):

count += li[x][(i - p - x) % 9]

li[p % 9][i % 9] += 1

print(str(count)[-6:])

 

Ответ: 346204 407867.


Аналоги к заданию № 58494: 58535 Все