Версия для копирования в MS Word
PDF-версии: горизонтальная · вертикальная · крупный шрифт · с большим полем
РЕШУ ЕГЭ — информатика
Задания
i

На вход про­грам­мы по­сту­па­ет по­сле­до­ва­тель­ность из n целых по­ло­жи­тель­ных чисел. Рас­смат­ри­ва­ют­ся все пары эле­мен­тов по­сле­до­ва­тель­но­сти ai и aj, такие что i < j и ai > aj (пер­вый эле­мент пары боль­ше вто­ро­го; i и j  — по­ряд­ко­вые но­ме­ра чисел в по­сле­до­ва­тель­но­сти вход­ных дан­ных). Среди пар, удо­вле­тво­ря­ю­щих этому усло­вию, не­об­хо­ди­мо найти и на­пе­ча­тать пару с мак­си­маль­ной сум­мой эле­мен­тов, ко­то­рая де­лит­ся на m  =  120. Если среди най­ден­ных пар мак­си­маль­ную сумму имеют не­сколь­ко, то можно на­пе­ча­тать любую из них.

Опи­са­ние вход­ных и вы­ход­ных дан­ных

В пер­вой стро­ке вход­ных дан­ных задаётся ко­ли­че­ство чисел n (2 ≤ n ≤ 12 000).

В каж­дой из по­сле­ду­ю­щих n строк за­пи­са­но одно целое по­ло­жи­тель­ное число, не пре­вы­ша­ю­щее 10 000.

В ка­че­стве ре­зуль­та­та про­грам­ма долж­на на­пе­ча­тать эле­мен­ты ис­ко­мой пары. Если таких пар не­сколь­ко, можно вы­ве­сти любую из них. Га­ран­ти­ру­ет­ся, что хотя бы одна такая пара в по­сле­до­ва­тель­но­сти есть.

 

При­мер вход­ных дан­ных:

6

60

140

61

100

300

59

 

При­мер вы­ход­ных дан­ных для при­ведённого выше при­ме­ра вход­ных дан­ных:

140 100

 

По­яс­не­ние. Из шести за­дан­ных чисел можно со­ста­вить три пары, сумма эле­мен­тов ко­то­рых де­лит­ся на m  =  120: 60 + 300, 140 + 100 и 61 + 59. Во вто­рой и тре­тьей из этих пар пер­вый эле­мент боль­ше вто­ро­го, но во вто­рой паре сумма боль­ше.

Тре­бу­ет­ся на­пи­сать эф­фек­тив­ную по вре­ме­ни и па­мя­ти про­грам­му для ре­ше­ния опи­сан­ной за­да­чи.

Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по вре­ме­ни, если при од­но­вре­мен­ном уве­ли­че­нии ко­ли­че­ства эле­мен­тов по­сле­до­ва­тель­но­сти n и па­ра­мет­ра m в k раз время ра­бо­ты про­грам­мы уве­ли­чи­ва­ет­ся не более чем в k раз.

Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по па­мя­ти, если па­мять, не­об­хо­ди­мая для хра­не­ния всех пе­ре­мен­ных про­грам­мы, не пре­вы­ша­ет 4 ки­ло­бай­та и не уве­ли­чи­ва­ет­ся с ро­стом n.

Мак­си­маль­ная оцен­ка за пра­виль­ную (не со­дер­жа­щую син­так­си­че­ских оши­бок и да­ю­щую пра­виль­ный ответ при любых до­пу­сти­мых вход­ных дан­ных) про­грам­му, эф­фек­тив­ную по вре­ме­ни и па­мя­ти,  — 4 балла. Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, воз­мож­но, не­эф­фек­тив­ную по па­мя­ти или время вы­пол­не­ния ко­то­рой су­ще­ствен­но за­ви­сит от ве­ли­чи­ны m,  — 3 балла.

Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, не удо­вле­тво­ря­ю­щую тре­бо­ва­ни­ям эф­фек­тив­но­сти,  — 2 балла.

Вы мо­же­те сдать одну про­грам­му или две про­грам­мы ре­ше­ния за­да­чи (на­при­мер, одна из про­грамм может быть менее эф­фек­тив­на). Если Вы сда­ди­те две про­грам­мы, то каж­дая из них будет оце­ни­вать­ся не­за­ви­си­мо от дру­гой, ито­го­вой ста­нет бо́льшая из двух оце­нок.

Перед тек­стом про­грам­мы обя­за­тель­но крат­ко опи­ши­те ал­го­ритм ре­ше­ния. Ука­жи­те ис­поль­зо­ван­ный язык про­грам­ми­ро­ва­ния и его вер­сию.