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

Во время сес­сии сту­ден­ты сдают 4 эк­за­ме­на, за каж­дый из ко­то­рых можно по­лу­чить от 2 до 5 бал­лов. Сту­ден­ты, по­лу­чив­шие хотя бы одну «двой­ку», счи­та­ют­ся не сдав­ши­ми сес­сию. Ре­зуль­та­ты сес­сии пуб­ли­ку­ют­ся в виде рей­тин­го­во­го спис­ка, в ко­то­ром сна­ча­ла ука­за­ны иден­ти­фи­ка­ци­он­ные но­ме­ра сту­ден­тов (ID), сдав­ших сес­сию, в по­ряд­ке убы­ва­ния сред­не­го балла за сес­сию, а в слу­чае ра­вен­ства сред­них бал­лов – в по­ряд­ке воз­рас­та­ния ID.

Затем рас­по­ла­га­ют­ся ID сту­ден­тов, не сдав­ших сес­сию: сна­ча­ла  — по­лу­чив­ших одну «двой­ку», затем  — две «двой­ки», потом ID сту­ден­тов с тремя «двой­ка­ми» и, на­ко­нец, ID сту­ден­тов, по­лу­чив­ших по 2 балла за каж­дый из эк­за­ме­нов. Если сту­ден­ты имеют оди­на­ко­вое ко­ли­че­ство «двоек», то их ID в рей­тин­ге рас­по­ла­га­ют­ся в по­ряд­ке воз­рас­та­ния.

По­вы­шен­ную сти­пен­дию по­лу­ча­ют сту­ден­ты, за­няв­шие в рей­тин­го­вом спис­ке пер­вые 25% мест, при усло­вии от­сут­ствия у них «двоек».

Га­ран­ти­ру­ет­ся, что без «двоек» сес­сию сдали не менее 25% сту­ден­тов.

Най­ди­те ID сту­ден­та, ко­то­рый за­ни­ма­ет по­след­нее место среди сту­ден­тов с по­вы­шен­ной сти­пен­ди­ей, а также ID пер­во­го в рей­тин­го­вом спис­ке сту­ден­та, ко­то­рый имеет более двух «двоек».

В от­ве­те за­пи­ши­те два целых по­ло­жи­тель­ных числа: сна­ча­ла ID сту­ден­та, ко­то­рый за­ни­ма­ет по­след­нее место среди сту­ден­тов с по­вы­шен­ной сти­пен­ди­ей, затем ID пер­во­го в рей­тин­го­вом спис­ке сту­ден­та, ко­то­рый имеет более двух «двоек».

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

За­да­ние 26

В пер­вой стро­ке вход­но­го файла на­хо­дит­ся число N, обо­зна­ча­ю­щее ко­ли­че­ство сту­ден­тов (целое по­ло­жи­тель­ное число, не пре­вы­ша­ю­щее 10 000). Каж­дая из сле­ду­ю­щих N строк со­дер­жит 5 чисел через про­бел: ID сту­ден­та (целое по­ло­жи­тель­ное число, не пре­вы­ша­ю­щее 100 000) и че­ты­ре оцен­ки, по­лу­чен­ные им за сес­сию. Га­ран­ти­ру­ет­ся, что общее число сту­ден­тов N крат­но 4 и хотя бы один сту­дент имеет более двух «двоек».

Во вход­ном файле все ID раз­лич­ны.

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

Два на­ту­раль­ных числа: ис­ко­мые ID сту­ден­тов в по­ряд­ке, ука­зан­ном в усло­вии за­да­чи.

Ти­по­вой при­мер ор­га­ни­за­ции дан­ных во вход­ном файле:

8

4 4 4 4 4

7 5 5 5 2

10 3 4 4 5

1 4 4 4 3

6 3 5 5 3

2 2 2 2 2

13 2 2 2 3

3 3 3 3 3

При таких ис­ход­ных дан­ных рей­тин­го­вый спи­сок ID имеет вид: 4 6 10 1 3 7 13 2. Ответ: 6 13.

 

Ответ:

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

Ре­ше­ние.

От­кро­ем тек­сто­вый до­ку­мент с по­мо­щью ре­дак­то­ра элек­трон­ных таб­лиц. За­пом­ним ко­ли­че­ство сту­ден­тов и уда­лим первую стро­ку.

В столб­це F будем счи­тать сред­ний балл сту­ден­тов. В ячей­ку F1 за­пи­шем фор­му­лу =СРЗНАЧ(B2:E2) и ско­пи­ру­ем её до конца спис­ка. В столб­це G будем счи­тать ко­ли­че­ство двоек. В ячей­ку G1 за­пи­шем фор­му­лу =СЧЁТЕСЛИ(B2:E2;2) и ско­пи­ру­ем её до конца спис­ка.

По­лу­чим сле­ду­ю­щую таб­ли­цу:

Вы­бе­рем столб­цы от A до G и вос­поль­зу­ем­ся на­стра­и­ва­е­мой сор­ти­ров­кой.

Вы­бе­рем по­сле­до­ва­тель­но сор­ти­ров­ку по воз­рас­та­нию ко­ли­че­ства двоек, сор­ти­ров­ку по убы­ва­нию сред­не­го балла и по убы­ва­нию ID сту­ден­тов.

Так как всего сту­ден­тов 9964. то 25 % от ко­ли­че­ства сту­ден­тов это 2491. Вы­пи­шем ID сту­ден­та в ячей­ке A2491. ID сту­ден­та, ко­то­рый за­ни­ма­ет по­след­нее место среди сту­ден­тов с по­вы­шен­ной сти­пен­ди­ей 52326. Это ответ на пер­вый во­прос.

Так как сту­ден­ты с двой­ка­ми не сор­ти­ру­ют­ся по сред­не­му баллу, убе­рем уро­вень сор­ти­ров­ки по сред­не­му баллу.

Вклю­чим фильтр по столб­цу G и вы­бе­рем толь­ко сту­ден­тов с ко­ли­че­ством двоек боль­ше 2.

По­лу­чим сле­ду­ю­щую таб­ли­цу:

ID пер­во­го в рей­тин­го­вом спис­ке сту­ден­та, ко­то­рый имеет более двух «двоек» 635.

 

Ответ: 52326 635.

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

f = open('demo_2025_26.txt')

n = int(f.readline())

a = [list(map(int,s.split())) for s in f]

a.sort(key = lambda x: x[0])

sdali = [x for x in a if x[1:].count(2)==0]

nesdali = [x for x in a if x[1:].count(2)!=0]

sdali.sort(key = lambda x: sum(x[1:]),reverse=True)

nesdali.sort(key = lambda x: x[1:].count(2))

rating = sdali+nesdali

for x in rating:

if x[1:].count(2) > 2:

idg22 = x[0]

break

print(rating[n//4-1][0],idg22)

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2025 по ин­фор­ма­ти­ке