вентилятор
Хорошего настроения!

Досрочный ЕГЭ по информатике 2023 (Задания 22-27)



В этой статье разберём оставшиеся задачи из досрочного ЕГЭ по информатике 2023.


Ещё лучше подготовится к ЕГЭ по информатике, Вы можете по материалам сайта Code-Enjoy.





Досрочный ЕГЭ по информатике 2023 (Задания 1-10)
Досрочный ЕГЭ по информатике 2023 (Задания 11-21)

Файлы, ответы и формулировки могут не совпадать с реальным досрочным экзаменом, а данная статья лишь примерно показывает прототипы задач.


Задание 22

В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.


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


Досрочный ЕГЭ по информатике демоверсия 2023 - задание 22

Определите минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно.


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


Скачать файл

Решение:

Найдём время исполнения каждого процесса в столбце D, исходя из их зависимостей. Более подробное объяснение сомтрите в соответствующей статье на сайте Code-Enjoy.


Досрочный ЕГЭ по информатике демоверсия 2023 - задание 22 (решение)

Самый медленный процесс выполнится за 40.


Ответ: 40



Задание 23

Исполнитель преобразует число на экране.


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


A. Прибавить 1

B. Умножить на 2

C. Умножить на 3


Программа для исполнителя – это последовательность команд.


Сколько существует программ, для которых при исходном числе 2 результатом является число 33, при этом траектория вычислений содержит число 15 и не содержит 11?


Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы ABA при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.


Решение:

Решим с помощью замечательного шаблона для 23 задания.


def F(x, y):
    if x == y: return 1

    if x > y or x==11: return 0

    if x < y: return F(x+1, y) + F(x*2, y) + F(x*3, y)

print(F(2, 15)*F(15, 33))

Ответ: 36



Задание 24

Текстовый файл состоит не более чем из 106 символов и содержит только про-писные буквы латинского алфавита.


Определите максимальное количество идущих подряд символов, среди которых нет подряд стоящих двух символов из набора A, B и C (включая повторения).


Скачать файл

Решение:
f=open('24_dosrok.txt')
s=f.read()

k=1
kmax=0

for i in range(0, len(s)-1):
    if (s[i]=='A' and (s[i+1]=='B' or s[i+1]=='C' or s[i+1]=='A')) or \
       (s[i]=='B' and (s[i+1]=='A' or s[i+1]=='C' or s[i+1]=='B')) or \
       (s[i]=='C' and (s[i+1]=='A' or s[i+1]=='B' or s[i+1]=='C')):
        k=1
    else:
        k=k+1
        kmax=max(kmax, k)
        
print(kmax)

Задача похожа на "Исключаем строку из 2-х символов, демо 2022" из статьи по 24 заданию.


Ответ: 742



Задание 25

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


– символ «?» означает ровно одну произвольную цифру;

– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.


Например, маске 123*4?5 соответствуют числа 123405 и 12300405.


Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске 12?3?3*5, делящиеся на 317 без остатка.


В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 317.


Количество строк в таблице для ответа избыточно.


ЕГЭ по информатике демоверсия 2022 - задание 25

Решение:

Подобная задача так же обсуждалась в видеокурсе и на обзоре реального экзамена ЕГЭ по информатике от 20.06.22


Если не учитывать звёздочку, число 12?3?35 имеет семь разрядов. Максимальная верхняя граница 108. Значит, для звёздочки есть один разряд.

#Вместо звёздочки ноль разрядов
for x in '0123456789':
    for y in '0123456789':
        s = '12' + x + '3' + y + '35'
        i=int(s)
        if i%317==0:
            print(i, i//317)
    
    
#Вместо звёздочки один разряд
for x in '0123456789':
    for y in '0123456789':
        for z in '0123456789':
            s = '12' + x + '3' + y + '3' + z + '5'
            i=int(s)
            if i%317==0:
                print(i, i//317)

Ответ:
12537353955
1213634538285
1243432539225
1273230540165
1293835540815




Задание 26

В аэропорту есть K камер хранений, нумерация камер начинается с единицы. Пассажиры оставили заявки на хранение своего багажа. В заявке указывается время сдачи багажа и время, до которого багаж будет храниться в камере (время отсчитывается в минутах от начала суток). Чтобы подготовить камеру хранения для нового клиента требуется одна минута. Пассажиры приходят к своему времени из заявки. Если свободных камер нет, то они уходят. Если свободные камеры есть, то багаж кладётся в камеру с минимальным номером. Если начальное время сдачи багажа будет одинаковое, то приоритет имеет тот пассажир, у которого время хранения багажа истечёт раньше. Какое количество пассажиров будет обслужено? В какую камеру попадёт багаж последнего обслуженного пассажира?


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

В первой строке входного файла находится число K – количество камер хранения (натуральное число, не превышающее 1000). Во второй строке входного файла находится число N – количество пассажиров (натуральное число, не превышающее 1000). В следующих N строках находятся время сдачи и возвращения багажа, указанное в заявках, каждого из пассажиров (оба числа меньше 1400).


Запишите в ответе два целых числа: сначала количество обслуженных пассажиров, затем номер, ячейки, в которую попадёт багаж последнего обслуженного пассажира.


Типовой пример организации данных во входном файле
2
4
30 60
40 1000
59 1000
61 1000

При таких исходных данных будут обслужены первый, второй и четвёртый пассажиры. Номер ячейки, в которую попадёт багаж последнего обслуженного пассажира равняется 1.


Скачать файл

Решение:
f=open('26_dosrok.txt')

k=int(f.readline())
n=int(f.readline())

a=[0]*k

count=0

nmr=-1

b=[]
for i in range(0, n):
    s=f.readline().split()
    b.append((int(s[0]), int(s[1])))

b.sort()

for i in range(0, n):

    for j in range(k):
        if a[j]==0 or b[i][0]>a[j] :
            a[j]=b[i][1]
            count=count+1
            nmr=j
            break

print(count, nmr+1)

Переменная count - Количество обслуженных пассажиров. Переменная nmr - последний номер используемой ячейки.


Список a - это камеры хранения. Каждая камера хранит время окончания её использования пассажиром. Список b хранит данные пассажиров. Каждая ячейка списка b представляем из себя список из двух элементов (начальное время использования и конечное время использования).


Сортируем список b по первому элементу, чтобы обработка пассажиров происходила в правильном временном порядке. При обычной сортировке, если первые элементы одинаковые, то будет происходить сортировка по второму значению. Это как раз то, что нам нужно.


При обработке пассажира пробегаемся по всем камерам по порядку. Если камера ещё не занята или время прошлого багажа просрочено, то пассажир её занимает.


Ответ:
6821




Задание 27

Устройство каждую минуту регистрирует "атмосферное давление". Найдите максимальную сумму двух измерений, между которыми прошло хотя бы K минут.


Входные данные. Даны два входных файла (файл A и файл B), каждый из которых в первой строке входного файла содержит число K. Во второй строке находится число N – количество измерений (натуральное число, не превышающее 10 000 000). В третьей строке величина измерения за первую минуту, в четвёртой ве-личина измерения за вторую минуту, и т.д.


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


2
5
30
20
10
0
15

Ответ: 45. Между первым(30) и пятым(15) измерениями прошло 4 минуты. Их сумма равна 45.


В ответе укажите два числа: сначала значение искомой суммы для файла А, затем – для файла B.


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


Скачать файл

Решение:
f=open('27b_dosrok.txt')

k=int(f.readline())
n=int(f.readline())

a=[]

m=0
mx=0

for i in range(n):
    x=int(f.readline())
    a.append(x)

for i in range(k, n):
    m=max(m, a[i-k])
    mx=max(mx, m+a[i])

print(mx)

ЕГЭ по информатике демоверсия 2022 - задание 27 (Решение)

Переменная m - максимальный элемент на расстоянии не менее k. Переменная mx - максимальная сумма двух элементов.


Ответ:
199778109055

Досрочный ЕГЭ по информатике 2023 (Задания 1-10)
Досрочный ЕГЭ по информатике 2023 (Задания 11-21)



10-04-2023 в 15:00:31





Поддержать сайт:


Похожая статья:

ЕГЭ по информатике - Задание 16 (Чемпионская подготовка)

Мы подошли к 16 заданию из ЕГЭ по информатике. Оно связано с различным...

Категория: Информатика  Подкатегория: ЕГЭ
Дата: 19-07-2020 в 10:23:27 2


Комментарии:

Здравствуйте! Что то непонятное написано в задании 27: " каждый из которых содержит в первой строке входного файла находится число K. " Так что же содержится в первой строке?
KAleGri 18-04-2023 в 04:39:32

Здравствуйте! Спасибо за поправку! В первой строке содержится число K.
Калужский Александр 18-04-2023 в 05:00:00

Интересненько
Александр 19-04-2023 в 19:29:20

https://code-enjoy.ru/download/27_dosrok.zip содержимое файла не совпадает с условием задачи 210 600 474 994 500 1284 723 1086 356 823 115 375
Дмитрий 28-04-2023 в 10:19:03

в третьей и далее строках по 2 числа
Дмитрий 28-04-2023 в 10:21:11

Спасибо, исправил!
Калужский Александр 28-04-2023 в 14:17:07

26 задача. for i in range(0, n): for j in range(k): if a[j]==0 or b[i][0]>a[j] :...... Условие a[j]==0, наверное, можно не писать ?
Елена 19-05-2023 в 19:46:56

Елена, да, можно не писать
Калужский Александр 19-05-2023 в 20:10:09



Оставить коментарий:



Напишите email, чтобы получать сообщения о новых комментариях (необязательно):


Задача против робота. Расположите картинки горизонтально:




Нажимая кнопку Отправить, Вы соглашаетесь с политикой конфиденциальности сайта.