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

В ма­га­зи­не продаётся N то­ва­ров не­сколь­ких ар­ти­ку­лов. То­ва­ры од­но­го ар­ти­ку­ла имеют оди­на­ко­вую цену. Учёт то­ва­ров ведётся по­штуч­но, для каж­дой еди­ни­цы то­ва­ра из­ве­стен её те­ку­щий ста­тус (про­да­на или нет). То­ва­ры раз­де­ле­ны на две ка­те­го­рии: до­ро­гие и дешёвые. До­ро­ги­ми счи­та­ют­ся то­ва­ры, цена на ко­то­рые пре­вы­ша­ет сред­нюю цену (сред­нее ариф­ме­ти­че­ское) всех то­ва­ров в базе дан­ных ма­га­зи­на без учёта их те­ку­ще­го ста­ту­са. Осталь­ные то­ва­ры счи­та­ют­ся дешёвыми.

Ли­де­ром про­даж на­зы­ва­ет­ся товар с таким ар­ти­ку­лом, наи­боль­шее ко­ли­че­ство еди­ниц ко­то­ро­го про­да­но. Лидер про­даж вы­би­ра­ет­ся среди до­ро­гих то­ва­ров, а если про­да­но оди­на­ко­вое ко­ли­че­ство до­ро­гих то­ва­ров с раз­ны­ми ар­ти­ку­ла­ми, ли­де­ром вы­би­ра­ет­ся товар с наи­боль­шей ценой. Если и таких то­ва­ров не­сколь­ко, лидер про­даж  — тот из них, ко­то­ро­го оста­лось мень­ше всего.

Най­ди­те сум­мар­ную вы­руч­ку ма­га­зи­на от ре­а­ли­за­ции то­ва­ра  — ли­де­ра про­даж, а также остав­ше­е­ся ко­ли­че­ство то­ва­ра с этим ар­ти­ку­лом.

 

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

За­да­ние 26

В пер­вой стро­ке вход­но­го файла на­хо­дит­ся число N  — ко­ли­че­ство то­ва­ров в базе дан­ных ма­га­зи­на (на­ту­раль­ное число, не пре­вы­ша­ю­щее 10 000). В каж­дой из сле­ду­ю­щих N строк на­хо­дит­ся три числа, раз­делённых про­бе­лом: ар­ти­кул то­ва­ра (на­ту­раль­ное число, не пре­вы­ша­ю­щее 100 000), его цена (на­ту­раль­ное число, не пре­вы­ша­ю­щее 10 000) и ста­тус (0, если товар уже про­дан, и 1, если ещё не про­дан).

 

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

Два числа: сумма вы­руч­ки от ре­а­ли­за­ции то­ва­ра  — ли­де­ра про­даж, а также ко­ли­че­ство то­ва­ра с этим ар­ти­ку­лом, остав­ше­е­ся в ма­га­зи­не.

 

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

8

10 100 1

3 10 0

10 100 0

2 10 1

10 100 0

3 10 1

11 100 0

1 200 0

При таких ис­ход­ных дан­ных до­ро­ги­ми яв­ля­ют­ся то­ва­ры сто­и­мо­стью 100 и 200 руб­лей. Боль­ше всего было про­да­но то­ва­ра с ар­ти­ку­лом 10. В про­да­же остал­ся один такой товар. Усло­вию за­да­чи удо­вле­тво­ря­ет ответ: 200 1.

 

Ти­по­вой при­мер имеет ил­лю­стра­тив­ный ха­рак­тер. Для вы­пол­не­ния за­да­ния ис­поль­зуй­те дан­ные из при­ла­га­е­мых фай­лов.

 

Ответ:

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

Ре­ше­ние.

От­кро­ем файл с по­мо­щью элек­трон­ной таб­ли­цы.

По­счи­та­ем сред­нюю цену то­ва­ров. Для этого в ячей­ке В2 вве­дем фор­му­лу =СРЗНАЧ(B2:B9993)

Раз­де­лим то­ва­ры на до­ро­гие и де­ше­вые. Для этого в ячей­ку D2 вве­дем фор­му­лу =ЕСЛИ(B2>$B$1;1;0) и ско­пи­ру­ем до конца спис­ка.

По­лу­чим таб­ли­цу:

Вклю­чим филь­тры и оста­вим толь­ко до­ро­гие то­ва­ры зна­че­нии ко­то­рых в столб­це D равно 1.

Ско­пи­ру­ем по­лу­чив­шу­ю­ся таб­ли­цу на от­дель­ный лист и оза­гла­вим столб­цы. Стол­бец А - ар­ти­кул, стол­бец B - цена, стол­бец D - про­да­жа.

По­лу­чим таб­ли­цу:

До­ба­вим свод­ную таб­ли­цу через меню Встав­ка-Свод­ная таб­ли­ца.

По­счи­та­ем ко­ли­че­ство про­дан­ных то­ва­ров. Для этого в ячей­ке D3 вве­дем фор­му­лу =B3-C3 и ско­пи­ру­ем до конца спис­ка. До­ба­вим цену то­ва­ра, для этого в ячей­ку E3 вве­дем фор­му­лу =ВПР(A3;$'1_26'.A:D;2;0)и ско­пи­ру­ем до конца спис­ка.

От­сор­ти­ру­ем таб­ли­цу по столб­цу D по убы­ва­нию. Так мы узна­ем то­ва­ры, ко­то­рых было про­да­но боль­ше всего. По­лу­чим таб­ли­цу:

Боль­ше всего про­да­но то­ва­ров с ар­ти­ку­ла­ми 37134, 46481 и 51786. Ли­де­ром про­даж счи­та­ет­ся товар, ко­то­ро­го оста­лось мень­ше всего на скла­де. Такой товар по ар­ти­ку­лом 46481, то­ва­ров остав­ших­ся на скла­де 36. (То­ва­ра с ар­ти­ку­лом 37134 не оста­лось, по­это­му его нель­зя сде­лать ли­де­ром про­даж, так как такой товар боль­ше не­воз­мож­но про­дать). Это ответ на вто­рой во­прос.

Для от­ве­та на пер­вый во­прос введём фор­му­лу =D3*E3 и по­лу­чи ответ - 43656.

 

Ответ: 43656 и 36.

 

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

f=open('1_26.txt')

n=int(f.readline())

m=0

tov=[]

for s in f:

art,cena,status=map(int,s.split())

m+=cena

tov.append([art,cena,status])

sred=m/n

tovdic={}

for art,cena,status in tov:

if cena > sred:

if art not in tovdic: tovdic[art]=[cena,0,0] # цена, про­да­но, оста­лось

if status==0: tovdic[art][1]+=1

else: tovdic[art][2]+=1

lider=max(tovdic.values(),key=lambda x: [x[1],x[0],-x[2]])

print(lider[0]*lider[1],lider[2])

Источник: ЕГЭ−2026. До­сроч­ная волна 07.04.2026. Ва­ри­ант ФИПИ