Вариант 1. Задача с магазином и деталями.

Вариант 2.

В текстовом файле записан набор натуральных чисел, не превышающих 109. Гарантируется, что все числа различны. Необходимо определить, сколько в наборе таких пар чётных чисел, что их среднее арифметическое тоже присутствует в файле, и чему равно наибольшее из средних арифметических таких пар.

Входные данные Первая строка входного файла содержит целое число? — общее количество чисел в наборе. Каждая из следующих? строк содержит одно число.

В ответе запишите два целых числа: сначала количество пар, затем наибольшее среднее арифметическое.

# Линейный поиск (работает долго)

data = list(map(int, open(r'./Data/26/ИН2010401.txt').read().splitlines()))[1:]

k, mx = 0, 0

for i in range(len(data)-1):

    if data[i] % 2 == 0:

        for j in range(i + 1, len(data)):

            if data[j] % 2 == 0:

                sr = (data[i] + data[j]) // 2

                if sr in data:

                    k, mx = k + 1, max(mx, sr)

print(k, mx)

# Бинарный поиск

a = list(map(int, open(r'./Data/26/ИН2010401.txt').read().splitlines()))[1:]

a.sort()

lsts = []

for i in range(len(a) — 1):

    for j in range(i + 1, len(a)):

        if a[i] % 2 == 0 and a[j] % 2 == 0:

            s = (a[i] + a[j]) // 2

            L = i

            R = j + 1

            while L < R — 1:

                C = (R + L) // 2

                if s < a[C]:

                    R = C

                else:

                    L = C 

            if a[L] == s:

                lsts.append(s)

print(len(lsts), max(lsts))

Вариант 3.

Продавец предоставляет покупателю, делающему большую закупку, скидку по следующим правилам:

— на каждый второй товар стоимостью больше 50 рублей предоставляется скидка 25%;

— общая стоимость покупки со скидкой округляется вверх до целого числа рублей;

— порядок товаров в списке определяет продавец и делает это так, чтобы общая сумма скидки была наименьшей.

По известной стоимости каждого товара в покупке необходимо определить общую стоимость покупки с учётом скидки и стоимость самого дорогого

товара, на который будет предоставлена скидка.

f = open('inf_22_10_20_26.txt')

n = int(f.readline())

s=0

m=[]

for i in range (n):

    a=int(f.readline())

    if a<51:

        s=s+a

    else:

        m.append(a)

m.sort()

for i in range(len(m)//2):

    m[i] = m[i] * 0.75

print(round(s+sum(m)), round(m[i]/0.75))

 

 ____________________________________________________________

 

point=list(list(map.int, string.split())) for string in map(str, open('26.txt').read().splitlines())

n=point[0]

point.pop(0)

point=sorted(point)

maxpoint=0

minpow=0

countpoint=1

for i in range(1,len(point)):

    if point[i] == pont[i-1]:

        continue

    if point[i][o]==point[i-1][0] and point[i-1][1]:

        countpoint+=1

        if countpoint>maxpoint:

            maxpoint=countpoint

            minrow=point[i][0]

        else:

            countpoint=1

print(maxpoint, minrow)

Вариант 4.

# Предприятие производит оптовую закупку некоторых изделий A и B, на которую выделена определённая сумма денег. У поставщика есть в наличии партии этих изделий различных модификаций по различной цене. На выделенные деньги необходимо приобрести как можно больше изделий A независимо от модификации.

 Если у поставщика закончатся изделия A, то на оставшиеся деньги необходимо приобрести как можно больше изделий B. Известны выделенная для закупки сумма, а также количество и цена различных модификаций данных изделий у поставщика. Необходимо определить, сколько будет закуплено изделий B и какая сумма

останется неиспользованной.

 

f = open('26 (3).txt')

n, m = map(int, f.readline().split())

a=[]

for i in range (n):

    x, y, z = f.readline().split()  #  x —  цена y — количество   z- тип товара

    a.append((z, int(x), int(y)))

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

xsum, countb = 0,0

for x in a:

    if xsum +x[1] >m: break

    for i in range(1,x[2] +1):

        if xsum +x[1] <= m:

            xsum = xsum + x[1]

            if x[0] =='B': countb=countb+1

print(countb, m — xsum)

Вариант 5.

В текстовом файле записан набор натуральных чисел, не превышающих 109.
Гарантируется, что все числа различны. Необходимо определить, сколько в наборе таких пар чётных чисел, что их среднее арифметическое тоже присутствует в файле,
и чему равно наибольшее из средних арифметических таких пар
.

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

f = open(‘stat17032021.txt’)
n = int(f.readline())
e = []
o = set()
for i in range(n):
    x = int(f.readline())
    if x % 2 == 0:
        e.append(x)
    else:
        o.add(x)
k = 0
m = 0
ee = set(e)
for i in range(len(e)-1):
    for j in range(i+1, len(e)):
        sr = (e[i] + e[j]) // 2
        if sr in ee or sr in o:
            k += 1
            if sr > m:
                 m = sr
print(k, m)

Вариант 6.

Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов. Известно, какой объём занимает файл каждого пользователя.

По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

f=open(‘27883.txt’)
s, n=map(int, f.readline().split())
sv=sorted(map(int, f))
sumn, c=0,0

for i in range(len(sv)):
   if sumn + sv[i]<=s:
       sumn= sumn+sv[i]
       c=c+1
nf=s-sumn+sv[c-1:][0]
while nf not in sv:
    nf=nf+1

print(c, nf)

Вариант 7.

# Во многих компьютерных системах текущее время хранится в формате «UNIX-время» — количестве секунд от начала суток 1 января 1970 года.

# В одной компьютерной системе проводили исследование загруженности. Для этого в течение месяца с момента UNIX-времени 1633046400 фиксировали и заносили в базу данных моменты старта и финиша всех процессов, действовавших в этой системе.

# Вам необходимо определить, какое наибольшее количество процессов выполнялось в системе одновременно на неделе, начавшейся в момент UNIX-времени 1633305600, и в течение какого суммарного времени (в секундах) выполнялось такое наибольшее количество процессов.

input= open('26 (1).txt').readline

n=int(input())

L=[]

for i in range(n):

    st, en = map(int, input().split())

    L.append((st, 1))

    if en==0: en = 2000000000

    L.append((en, -1))

L.sort()

mxk=dt=k=0

w0=1633305600; w1=w0+7*24*3600

for t, dk in L:

    k += dk

    if w0<k<w1:

        if k>mxk: mxk, dt = k, 0

        if k-dk==mxk: dt +=t-t0

    t0=t

print(mxk, dt)

Вариант 8.

Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов.

Известно, какой объём занимает файл каждого пользователя. По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

 

f = open('26 (2).txt')

data = f.readlines() # массив строк , readlines

s = data[0].split() # ['8200', '970']

s = int(s[0]) # 8200 — объем св места на диске

del(data[0]) # первая строка больше не нужна, удаляем ее

for i in range(0, len(data)): # цикл для преобразования в int

    data[i]=int(data[i])

data=sorted(data) # сортируем полученный массив для удобства работы

summa = 0

for count in range (0,len(data)):

    if summa + data[count] > s: break # если сумма больше — прерываем цикл

    summa += data[count] # формируем сумму, добавляя отсортированные элементы

# как только сумма превысила s, произойдёт выход из цикла по оператору break,

#, а в переменной count останется количество добавленных значений

print (count) # макс число файлов в архиве

# вычисляем запас, который мы можем уменьшить с помощью замены одного выбранного значения на другое:

zapas = s — summa

# теперь выбираем из массива данных те значения, которые могут быть выбраны:

# разность между таким значением и наибольшим выбранным элементом data[count-1] должна быть не больше, чем  zapas:

for i in range (0,len(data)):

    if data[i] — data[count-1] <= zapas:

        itog = data[i]

print(itog)  # максимальный размер файла

Вариант 9.

В магазине электроники раз в месяц проводится распродажа. Из всех товаров выбирают K товаров с самой большой ценой и делают на них скидку в 20%. По заданной информации о цене каждого из товаров и количестве товаров, на которые будет скидка, определите цену самого дорогого товара, не участвующего в распродаже, а также целую часть от суммы всех скидок.

f = open('26-k1.txt')

data = f.readlines()

s = data[0].split()

nPrice=int(s[0]) # количество цен

k = int(s[1]) # количество товаров с самой большой ценой

del(data[0])

for i in range (0, len(data)): # переводим в целые числа

    data[i] = int(data[i])

print(data)

data = sorted(data, reverse=True) # или data.sort(reverse = True)

summa = 0

for i in range(0,k):

    summa+=data[i]*0.2 # 10000 10000 10000

print(data[k], int(summa)) # data[k] — самый дорогой товар, так как k уже не входит в счетчик цикла

Вариант 10.

# Предприятие производит оптовую закупку некоторых изделий A и B, на которую выделена определённая сумма денег. У поставщика есть в наличии партии этих изделий различных модификаций по различной цене. На выделенные деньги необходимо приобрести как можно больше изделий B независимо от модификации.

# Если у поставщика закончатся изделия B, то на оставшиеся деньги необходимо приобрести как можно больше изделий A. Известны выделенная для закупки сумма, а также количество и цена различных модификаций данных изделий у поставщика.

# Необходимо определить, сколько будет закуплено изделий A и какая сумма останется неиспользованной.

f = open('26 (4).txt')

n, m = map(int, f.readline().split())

a=[]

for i in range (n):

    x, y,z = f.readline().split()  #  x —  цена y — количество   z- тип товара

    a.append((z, int(x), int(y)))

a.sort(key = lambda x: (x[0]=='A', x[1]))

xsum, counta = 0,0

for x in a:

    if xsum +x[1] >m: break

    for i in range(1,x[2] +1):

        if xsum +x[1] <= m:

            xsum = xsum + x[1]

            if x[0] =='A': counta=counta+1

print(counta, m — xsum)

Материалы ученикам

ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Хорошее поведение

Некоторые из способов добиться наилучшего результата по учебе — соблюдать элементарные правила поведения в школе.
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Обязательные требования при работе в компьютерном классе

Требований есть гораздо больше, но это тот минимум, который необходимо соблюдать. Помните, один из ключей...
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Практика без теории — путь в никуда

Есть много теорий насчет этого, но именно по отношению к детям среднего школьного возраста эту позицию считаю...
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Правильный подход к выполнению домашнего задания и мои требования

Не скажу, что это — единственный правильный подход, но при углубленном изучении предмета в малых группах...
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

О воспитании и подготовке домашнего задания

Один из подходов к выполнению домашнего задания (углубленное изучение предмета)
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 12 задание.

Некоторые решения этого типа ЕГЭ.
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 5 задание.

Анализ и построение алгоритмов для исполнителей
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 2 задание.

Построение таблиц истинности логических выражений
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 11 задание.

Сколько байтов потребуется для хранения данных?
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 14 задание.

Подсчет цифр в системе счисления
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 4 задание

Кодирование
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ОГЭ. Информатика. 12 задание.

Исполнитель Редактор
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

ЕГЭ. Информатика. 1 задание.

Соотнесение графа и таблицы.
ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Объяснения материала. Информатика 10-11 класс.

ЕГЭ. Информатика. 26 задание. Зойкин Максим Валерьевич

Объяснения материала. Информатика 9 класс.