Демоверсия егэ информатика 2023 решение

группа vk вконтакте

группа fb facebook

*** ПЛЕЙЛИСТ КАНАЛА ЮТЬЮБ ***
 
ЕГЭ по информатике -> демоверсия ЕГЭ 2023
 
Скачать pdf демоверсии варианта ->
  

1.
1 задание. Демо ЕГЭ 2023 информатика, ФИПИ:

На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).

1 2 3 4 5 6 7
1 39 3
2 39 8 5
3 3 2
4 8 53
5 5 21 30
6 2 21 13
7 53 30 13

Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
Определите, какова сумма протяжённостей дорог из пункта D в пункт B и из пункта F в пункт A.

В ответе запишите целое число.

Ответ: 58
🎦 Видео на RuTube


✍ Решение:

  • Рядом с каждой вершиной проставим количество ребер вершины и в скобках — количество ребер у «соседей»:
  • Выберем уникальные вершины, значения которых вместе с соседними вершинами отличаются от всех:
  • B = 2(3,3)
    A = 3(3,3,3)
  • Найдем эти вершины в таблице.
  • Вершина B 2(3,3):
  • Найдем строки в таблице с двумя вершинами:
    №1:  39 и 3 = 2(3,2) , т.к. 1 сосед =(39,8,5) и 2 сосед=2(3,2). Данная строка не подходит, так как мы ищем 2(3,3)
    №3: 3 и 2 = 3(2,2) не подходит
    №4: 8 и 53 = 2(3,3) => B = №4
    
  • Вершина А 3(3,3,3):
  • Найдем строки в таблице с двумя вершинами:
    №2:  39 и 8 и 5 = 3(3,2,3) не подходит
    №5: 5 и 21 и 30 = 3(3,3,3) => A = №5
    
  • На графе находим вершину B, и видим соседей — D(2,3,3) и F(2,2,3).
  • В таблице №4=B пересекается с №2(2,2,3) и №7(2,3,3). Делаем вывод, что №2=F, №7=D.
  • По таблице находим длину и сумму длин:
  • DB=53, FA=5
    53+5 = 58

Ответ: 58

2.
2 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

Миша заполнял таблицу истинности логической функции F

¬(y → x) ∨ (z → w) ∨ ¬z

но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

Перем.1 Перем.2 Перем.3 Перем.4 Функция
??? ??? ??? ??? F
0 0
0 1 0
1 0 0

В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.).

Ответ: yxzw
  
Решение подобного задания (теоретическое):
🎦 RuTube


3.
3 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

Задание выполняется с использованием прилагаемых файлов

В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.

ID операции Дата ID магазина Артикул Тип операции Количество упаковок Цена

Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.

Артикул Отдел Наименование Единица измерения Количество в упаковке Производитель

Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.

ID магазина Район Адрес

На рисунке приведена схема указанной базы данных.

Используя информацию из приведённой базы данных, определите общий вес (в кг) крахмала картофельного, поступившего в магазины Заречного района за период с 1 по 8 июня включительно.
В ответе запишите только число.

Ответ: 355
 
🎦 Видео на RuTube здесь


4.
4 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

По каналу связи передаются сообщения, содержащие только буквы из набора: А, З, К, Н, Ч. Для передачи используется двоичный код, удовлетворяющий прямому условию Фано, согласно которому никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны:

Н – 1111
З – 110

Для трёх оставшихся букв А, К и Ч кодовые слова неизвестны.

Какое количество двоичных знаков потребуется для кодирования слова КАЗАЧКА, если известно, что оно закодировано минимально возможным количеством двоичных знаков?

Ответ: 14
🎦 Видео на RuTube здесь


5.
5 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
  а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
 б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 результатом является число 11012 = 1310.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 40. В ответе это число запишите в десятичной системе счисления.

Ответ: 16
🎦 Видео на RuTube здесь (программирование Pascal)
🎦 Видео на RuTube здесь (аналитическое решение)
  


6.
6 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды:
Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова,
и Направо m (где m –  целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

1. Черепахе был дан для исполнения следующий алгоритм:

Повтори 7 [Вперёд 10 Направо 120].

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

ИЛИ:
2. Черепахе был дан для исполнения следующий алгоритм:

Повтори 2 [Вперёд 10 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Вперёд 3 Направо 90 Вперёд 5 Налево 90
Опустить хвост
Повтори 2 [Вперёд 70 Направо 90 Вперёд 80 Направо 90]

Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными
алгоритмом линиями, включая точки на границах этого пересечения.

Ответ:1. 38 ИЛИ 2. 128
  ✍ Решение:

  • Запустите программу Кумир.
  • В окне редактора введите код для Черепахи:
  • использовать Черепаха
    алг
    нач
     цел а
     опустить хвост
     нц для а от 1 до 7
       вперед(16)
       вправо(120)
     кц
    кон
    В задании указана команда вперед 10. Но мы использовали вперед 16 с целью получения ровно 10 клеточек. Нужно подобрать такое число, чтобы число клеток совпадало со значением в задании.
    В случае необходимости можно использовать колесико мышки для увеличения/уменьшения масштаба поля.

Ответ: 38

7.
7 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла – 28 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в 3,5 раза выше и частотой дискретизации в 2 раза меньше, чем в первый раз. Сжатие данных не производилось.
Укажите размер полученного при повторной записи файла в Мбайт. В ответе запишите только целое число, единицу измерения писать не нужно.

Ответ: 98
  ✍ Решение:

  • Вспомним формулу объема звукового файла:
  • I = β * ƒ * t * S

    I — объем
    β — глубина кодирования
    ƒ — частота дискретизации
    t — время
    S -количество каналов

  • Выпишем отдельно, все данные, касающиеся первого состояния файла, затем второго состояния — после преобразования:
  • 1 состояние:
    S = 1 канал
    I = 28 Мбайт
    
    2 состояние:
    S = 2 канала
    β = в 3,5 раза выше
    ƒ = в 2 раза ниже
    I = ?
    
  • Так как изначально был 1 канал связи (S), а стало два канала связи, то файл увеличился в 2 раза:
  • I = I * 2
  • Глубина кодирования (β) увеличилась в 3,5 раза, то и объем (I) увеличится в 3,5 раза (пропорциональная зависимость):
  • I = I * 3,5
  • Частота дискретизации (ƒ) уменьшилась в 2 раза, значит, объем (I) тоже уменьшится в 2 раза:
  • I = I / 2
  • Рассмотрим все изменения объема преобразованного файла:
  • I = 28 Мбайт * 2 * 3,5 / 2 = 98 Мбайт

Ответ: 98


8.
8 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

  • Определите количество пятизначных чисел, записанных в восьмеричной системе счисления, в записи которых только одна цифра 6, при этом никакая нечётная цифра не стоит рядом с цифрой 6.
  • Ответ: 2961
    Видео на RuTube здесь

     


    9.
    9 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

  • в строке только одно число повторяется ровно два раза, остальные числа различны;
  • среднее арифметическое неповторяющихся чисел строки не больше суммы повторяющихся чисел.
  • В ответе запишите только число.

    Ответ: 2241

    🎦 Видео на RuTube здесь (Excel)


    10.
    10 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    Текст произведения Льва Николаевича Толстого «Севастопольские рассказы» представлен в виде файлов различных форматов. Откройте один из файлов и определите, сколько раз встречается в тексте отдельное слово «теперь» со строчной буквы. Другие формы этого слова учитывать не следует.
    В ответе запишите только число.

    Ответ: 45


    11.
    11 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

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

    Определите объём памяти (в Кбайт), необходимый для хранения 65 536 идентификаторов. В ответе запишите только целое число – количество Кбайт.

    Ответ: 22016
    ✍ Решение:

    • Основной формулой для решения данной задачи является:
    • Q = 2N

      где Q — количество вариантов символов, которые можно закодировать с помощью N бит.

    • Чтобы найти количество бит, необходимое для хранения одного идентификатора, для начала нужно найти количество бит, необходимых для хранения 1 символа в идентификаторе. По формуле получаем:
    • 1650+10 = 2N 
      -> N ~ 11 бит (т.к. 10 мало)
    • Пароль состоит из 250 символов. Значит на идентификатор необходимо выделить бит:
    • 250 * 11 = 2750 бит всего на идентификатор
    • Поскольку сведения о пароле сохраняются в байтах, то переведем:
    • 2750 бит / 8 =343,75 ~ 344 байт
    • Теперь найдем сколько байт отводится для хранения информации о 65536 идентификаторах и переведем в кБайты:
    • 344 * 65536 : 210 => выразим в степени двойки => 65536 =216
      344  * 216 : 210 = 344*26 = 22016

    Ответ: 22016


    12.
    12 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
    А) заменить (v, w).

    Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

    Б) нашлось (v).

    Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

    Дана программа для Редактора:

    НАЧАЛО
    ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>0)
     ЕСЛИ нашлось (>1)
      ТО заменить (>1, 22>)
     КОНЕЦ ЕСЛИ
     ЕСЛИ нашлось (>2)
      ТО заменить (>2, 2>)
     КОНЕЦ ЕСЛИ
     ЕСЛИ нашлось (>0)
      ТО заменить (>0, 1>)
     КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
    КОНЕЦ
    

    На вход приведённой выше программе поступает строка, начинающаяся с символа «>», а затем содержащая 39 цифр «0», n цифр «1» и 39 цифр «2», расположенных в произвольном порядке.
    Определите наименьшее значение n, при котором сумма числовых значений цифр строки, получившейся в результате выполнения программы, является простым числом.

    Ответ: 5

    ✍ Решение:

      ✎ Решение с использованием программирования:
      PascalABC.NET:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      
      begin
        for var n := 1 to 1000 do
        begin
          var s := '>' + 39 * '0' + n * '1' + 39 * '2';
          while ('>1' in s) or ('>2' in s) or ('>0' in s) do
          begin
            if '>1' in s then
              s := s.Replace('>1', '22>', 1);
            if '>2' in s then
              s := s.Replace('>2', '2>', 1);
            if '>0' in s then
              s := s.Replace('>0', '1>', 1);
          end;
          var sum := s.CountOf('1') + s.CountOf('2') * 2;
          var isPrime := true;
          for var i := 2 to sum - 1 do
          begin
            if sum.Divs(i) then
            begin
              isPrime := false;
              break
            end;
          end;
          if isPrime then
          begin
            print(n);
            exit;
          end;
        end;
      end.

     
    🎦 Видео на RuTube здесь


    13.
    13 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, И, К, Л. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.

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

    Ответ: 21


    14.
    14 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Операнды арифметического выражения записаны в системе счисления с основанием 15.

    123x515 + 1x23315

    В записи чисел переменной x обозначена неизвестная цифра из алфавита 15-ричной системы счисления.
    Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 14. Для найденного значения x вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

    Ответ: 8767

    🎦 Видео решения на Паскале (RuTube) здесь

    ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.NET:

    uses school;
    begin
      foreach var x in '0123456789abcde' do
      begin
        var a := dec('123' + x + '5', 15);
        var b := dec('1' + x + '233', 15);
        var sum := a + b;
        if sum mod 14 = 0 then
        begin
          print(sum / 14);
          break;
        end
      end;
    end.
    Python:

     
    С++:

     

    15.
    15 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».
    Для какого наименьшего натурального числа А формула

    (ДЕЛ(x, 2) → ¬ДЕЛ(x, 3)) ∨ (x + A ≥ 100)

    тождественно истинна (т.е. принимает значение 1) при любом натуральном значении переменной х?

    Ответ: 94
    ✍ Решение:

    ✎ Решение с использованием программирования:
    PascalABC.NET:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    begin
      for var A := 1 to 500 do
      begin
        var ok := 1;
        for var x := 1 to 1000 do
        begin
          if (((x mod 2 = 0) <= (x mod 3 <> 0)) or (x + A >= 100)) =false then
          begin
            ok := 0; 
            break;
          end;
        end;
        if (ok = 1) then 
          print(A)
      end;
    end.

    Питон:

    1
    2
    3
    4
    5
    6
    
    for A in range(1,1000):
        OK = 1
        for x in range(1,1000):
            OK *= ((x % 2 == 0) <= (x % 3 != 0)) or (x + A >= 100)
        if OK:
            print( A )

    C++:

    1
    
     

    16.
    16 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Алгоритм вычисления значения функции F(n), где nнатуральное число, задан следующими соотношениями:

    F(n) = 1 при n = 1;
    F(n) = n × F(n − 1), если n > 1
    

    Чему равно значение выражения F(2023) / F(2020)?

    Ответ: 8266912626
      
     ✍ Решение:

    ✎ Решение с использованием программирования:
    PascalABC.NET:
    Решается только с типом данных BigInteger!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    function F(n: biginteger): biginteger;
    begin
      if n = 1 then
        F := 1
      else if n > 1 then
        F := n * F(n - 1)
    end;
     
    begin
      print(F(2023)/F(2020))
    end.

    Питон:

    1
    
     

    C++:

    1
    
     

    Ответ: 8266912626


    17.
    17 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество пар последовательности, в которых только одно число оканчивается на 3, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 3. В ответе запишите два числа: сначала количество найденных пар, затем максимальную из сумм квадратов элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

    Ответ: 180 190360573
     

    18.
    18 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

      
    Квадрат разлинован на N × N клеток (1 < N < 30). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота. Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную. Исходные данные представляют собой электронную таблицу размером N × N, каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщенными линиями. Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.

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

    Ответ: 1099 1026

    19.
    19 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
    Игра завершается в тот момент, когда количество камней в куче становится не менее 129. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 129 или больше камней.
    В начальный момент в куче было S камней, 1 ≤ S ≤ 128. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
    Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

    Ответ: 64

    20.
    20 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Для игры, описанной в задании 19, найдите два наименьших значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
  • Найденные значения запишите в ответе в порядке возрастания.

    Ответ: 32 63


    21.
    21 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:

  • у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
  • у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
  • Если найдено несколько значений S, в ответе запишите минимальное из них.

    Ответ: 62


    22.
    22 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

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

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


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

    Ответ: 17
      ✍ Решение:

      Откроем файл и проанализируем таблицу:

    • В столбце С указаны номера процессов, после которых запускается процесс, указанный в столбце А.
    • Если в столбце С для некоторой строки указан 0, значит процесс этой строки запускается сразу, не ожидая выполнения других процессов. То есть, процессы 1, 2, 9 и 10 запускаются одновременно и сразу после запуска системы процессов. При этом, процесс 1 будет выполняться 4 мс (столбец В), а, к примеру, процесс 10 будет выполняться 8 мc.
    • Уменьшим ширину столбцов D:V (примерный диапазон), и пронумеруем данные столбцы, начиная с 1, используя автозаполнение:
    • Далее, начиная с процессов, которые запускаются параллельно (цифра 0 в столбце С), выделяем вправо количество столбцов, равное количеству миллисекунд в столбце В. Заливаем их цветом:
    • Затем в столбце С ищем те строки, в которых используются уже заполненные процессы. Так, процесс №3 запускается последовательно за процессом 1 и 2. Так как процесс №1 длится дольше — 4 мс, то заливаем цветом столбцы для процесса №3 вправо, после уровня залитых ячеек для процесса №1:
    • Теперь можно залить цветом данные о процессах 4 и 5, так как эти процессы следуют за процессом №3.
    • Следуя той же логике, закрашиваем данные по всем процессам:
    • Видим, что самая крайняя справа заполненная ячейка соответствует числу 17.

    23.
    23 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    Исполнитель преобразует число на экране.
    У исполнителя есть две команды, которым присвоены номера:
    1. Прибавить 1
    2. Умножить на 2
    Программа для исполнителя – это последовательность команд.

    Сколько существует программ, для которых при исходном числе 1 результатом является число 35, при этом траектория вычислений содержит число 10 и не содержит 17?
    Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

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

    Ответ: 98
      

    24.
    24 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

     
    Текстовый файл состоит из символов A, C, D, F и O.
    Определите максимальное количество идущих подряд пар символов вида

    согласная + гласная

    в прилагаемом файле.
    Для выполнения этого задания следует написать программу.

    Ответ: 95


    25.
    25 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

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

  • символ «?» означает ровно одну произвольную цифру;
  • символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
  • Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

    Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 1?2139*4, делящиеся на 2023 без остатка.
    В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им
    результаты деления этих чисел на 2023.
    Количество строк в таблице для ответа избыточно.

    ...  ...
    ...  ...
    ...  ...

      
    Ответ:

    162139404 80148
    1321399324 653188
    1421396214 702618
    1521393104 752048 
    

    26.
    26 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

     
    В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д.
    Одну коробку можно поместить в другую, если длина её стороны хотя бы на 3 единицы меньше длины стороны другой коробки. Определите
    наибольшее количество коробок, которое можно использовать для упаковки одного подарка, и максимально возможную длину стороны самой маленькой коробки, где будет находиться подарок. Размер подарка позволяет поместить его в самую маленькую коробку.

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

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

    5
    43
    40
    32
    40
    30

    Пример входного файла приведён для пяти коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3 единицы. При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 30, 40 и 43 или 32, 40 и 43 соответственно, т.е. количество коробок равно 3, а длина стороны самой маленькой коробки равна 32.

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

    Ответ: 2767 51

    27.
    27 задание. Демоверсия варианта ЕГЭ по информатике 2023, ФИПИ:

    A
    B
    Задание выполняется с использованием прилагаемых файлов

      
    У медицинской компании есть N пунктов приёма биоматериалов на анализ. Все пункты расположены вдоль автомагистрали и имеют номера,
    соответствующие расстоянию от нулевой отметки до конкретного пункта.
    Известно количество пробирок, которое ежедневно принимают в каждом из пунктов. Пробирки перевозят в специальных транспортировочных контейнерах вместимостью не более 36 штук. Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в лаборатории.
    Стоимость перевозки биоматериалов равна произведению расстояния от пункта до лаборатории на количество контейнеров с пробирками. Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в лабораторию. Лабораторию расположили в одном из пунктов приёма биоматериалов таким образом, что общая стоимость доставки биоматериалов из всех пунктов минимальна.
    Определите минимальную общую стоимость доставки биоматериалов из всех пунктов приёма в лабораторию.

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

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

    6
    1 100
    2 200
    5 4
    7 3
    8 2
    10 190
    

    При таких исходных данных и вместимости транспортировочного контейнера, составляющей 96 пробирок, компании выгодно открыть лабораторию в пункте 2. В этом случае сумма транспортных затрат составит: 1 · 2 + 3 · 1 + 5 · 1 + 6 · 1 + 8 · 2.

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

    Ответ: 51063 5634689219329



     
    ЕГЭ по информатике -> демоверсия ЕГЭ 2023

    Досрочный егэ информатика 2022 решение

    группа vk вконтакте

    группа fb facebook

    *** ПЛЕЙЛИСТ КАНАЛА ЮТЬЮБ ***
     
    ЕГЭ по информатике -> досрочный ЕГЭ 2022
     
    Скачать pdf демоверсии варианта ->
      

    1.
    1 задание. Досрочный ЕГЭ 2022 информатика, ФИПИ:

    На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).

    П1 П2 П3 П4 П5 П6 П7
    1 11 10 7
    2 10 8
    3 11 10 13
    4 13 3
    5 10 13 5
    6 7 8 13
    7 3 5

    Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
    В таблице в левом столбце указаны номера пунктов, откуда совершается движение, в первой строке – куда.
    Определите сумму длин дорог между пунктом А и пунктом Б, и между пунктом Е и пунктом К.

    Ответ: 16
    ✍ Решение:

    • Рядом с каждой вершиной напишем количество ребер для данной вершины и в скобках — количество ребер у соседних вершин:
    • Проще всего определить вершины Е и К, так как это единственные вершины с двумя ребрами, соседствующие друг с другом: Е = П7, на пересечении с ней находится П4, у которой также 2 ребра. К = П4.
    • Вторым соседом Е является вершина Б. Значит Б = П5.
    • Вторым соседом К является вершина Д. Значит Д = П6.
    • Одним из соседей Д является вершина Г, у которой два ребра. На пересечении с Д есть пункт П2, в котором два значения. Значит, Г = П2.
    • Вторым соседом Г является вершина А. Т.е., А = П3.

    • По заданию нам необходимо найти длину дорог между А и Б, и длину дорог между Е и К. Найдем значения и их сумму:
    • 13 + 3 = 16

    Ответ: 16


    2.
    2 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Логическая функция F задаётся выражением

    ¬(x → z) ∨ (y ≡ w) ∨ ¬y
    

    На
    рисунке приведён частично заполненный фрагмент таблицы истинности
    функции F, содержащий неповторяющиеся строки.
    переменных x, y, z, w.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из.
    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    ??? ??? ??? ??? F
    0 0 0
    0 0
    1 1 0 0

    В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.).

    Ответ: xzyw
      
    ✍ Решение:

      ✎ Способ 1. Программирование:

      Язык PascalAbc.net:

      begin
        writeln('x':7, 'y':7, 'z':7,'w':7);
        for var x:=false to true do
          for var y:=false to true do
            for var z:=false to true do
              for var w:=false to true do
                if not((not (x <= y)) or (y=w) or (not y)) then
                  writeln(x:7, y:7, z:7,w:7);
      end.

      Сопоставим полученный результат с исходной таблицей:

            x      y      z      w
        False   True  False  False
        False   True   True  False
         True   True  False  False
         True   True   True  False
      
      1 столбец 2 столбец 3 столбец 4 столбец F
      0 0 0
      0 0
      1 1 0 0
    • Для y имеем все значения true, что может соответствовать только 3-му столбцу.
    • Для w имеем все значения false, что может соответствовать только 4-му столбцу.
    • Для поиска z и x рассмотрим вторую строку — в ней их значения различны. Значение false — у переменной x, что соответствует первому столбцу.
    • Соответственно z будет во втором столбце.

    Ответ: xzyw

    3.
    3 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
    Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в
    соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня.
    Заголовок таблицы имеет следующий вид.

    ID операции Дата ID магазина Артикул Тип операции Количество упаковок, шт. Цена, руб./шт.

    Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.

    Артикул Отдел Наименование Ед. изм. Количество в упаковке Поставщик

    Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.

    ID магазина Район Адрес

    На рисунке приведена схема указанной базы данных.

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

    Ответ: 956
    ✍ Решение:

    • В таблице Товар находим наименование товара — Яйцо диетическое (можно использовать фильтр). Запоминаем его артикул — 15.
    • В таблице Магазин ищем магазины Заречного района, выписываем их ID: M3, M9, M11, M14.
    • В таблице Движение товаров выделяем первую строку и ставим фильтр на всю строку.
    • В столбце ID Магазина отмечаем только ID из предыдущего пункта. В столбце Артикул — выбираем 15.
    • Проверяем даты — все они входят в указанный диапазон дат.
      Выбираем Тип операцииПоступление. выделяем значение столбца и смотрим сумму в столбце Количество упаковок — 1420. Затем выбираем Продажа; количество упаковок — 454.

      1420 - 454 = 956

    Ответ: 956


    4.
    4 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Для кодирования некоторой последовательности, состоящей из букв О, Н, Г, К, Р, решили использовать неравномерный двоичный код, гарантирующий однозначное декодирование. Для букв К и Р использовали соответственно кодовые слова 00, 011.
    Найдите наименьшую возможную длину кодовой последовательности для слова КОНОГОН.

    Ответ: 15
    ✍ Решение:

    • Размещаем буквы так, чтобы наиболее часто встречаемые в слове коногон буквы имели наиболее короткий код.
    • К = 2
      О = 3*2 = 6
      Н = 2*2 = 4
      Г = 3
      ---
      итого: 15
      

    Ответ: 15


    5.
    5 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Автомат обрабатывает натуральное число N по следующему алгоритму:

    1. Строится двоичная запись числа N.
    2. К полученной записи дописываются разряды. Если число четное справа дописывается 10, если число нечетное – слева дописывается 1 и справа 01.
    3. Результат переводится в десятичную систему и выводится на экран.

    Пример. Дано число N = 13. Алгоритм работает следующим образом:
    1. Двоичная запись числа N: 1101.
    2. Число нечетное, следовательно слева дописываем 1, справа 01 – 1+1101+01 = 1110101.
    3. На экран выводится число 117.

    В результате работы автомата на экране появилось число, большее 516. Для какого наименьшего значения N данная ситуация возможна?

    Ответ: 65
     
    ✍ Решение:

       
      ✎ Решение с использованием программирования:

      PascalAbc.NET:

      uses school;
       
      begin
        var n_ := 1;
        while True do
        begin
          var n := n_;
          var binN := bin(n); 
          if n mod 2 = 0 then
            binN := binN + '10' // добавили 10, строковое значение в 2-й с.с.
          else
            binN := '1' + binN + '01';// добавили слева 1, права 01
          n := dec(binN, 2); // перевод из двоичной в 10-ю с.с.
          if n > 516 then
          begin
            println(n_);
            break
          end;
          n_ += 1;
        end;
      end.
      Python:

       

    Ответ: 65


    6.
    6 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Найдите минимальное значение переменной s, подаваемое на вход программе, для которого в результате работы программы на экран будет выведено значение 8? Для Вашего удобства программа представлена на четырёх языках программирования.

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    var
      n, s: integer;
     
    begin
      readln(s);
      s := (s - 10) div 7;
      n := 1;
      while s > 0 do
      begin
        n := n * 2;
        s := s - n;
      end;
      write(n)
    end.
    Алгоритмический язык:

    алг
    нач
     цел s, n
     ввод s
     s = div(s-10, 7)
     n := 1
     нц пока s > 0
     n := n * 2
     s := s - n
     кц
     вывод n
    кон 
    
    Python:

    s = int(input())
    s = (s - 10) // 7
    n = 1
    while s > 0:
     n = n*2
     s = s – n
    print(n)
    С++:

    #include <iostream>
    using namespace std;
    int main() {
     int n, s;
     cin >> s;
     n = 1;
     s = (s – 10) / 7;
     while(s > 0) {
     n = n * 2;
     s = s - n;
     }
     cout << n;
     return 0;
    }

    Ответ: 59
      

    ✍ Решение:

      ✎ Способ 1 (программный):
      Pascalabc.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      begin
        var s_ := 500;
        while s_ > -10 do
        begin
          var s := s_;
          s := (s - 10) div 7;
          var n := 1;
          while s > 0 do
          begin
            n := n * 2;
            s := s - n;
          end;
          if n = 8 then writeln(s_);
          s_ := s_ - 1;
        end;
      end.

      Пояснение:

    • Поскольку условие цикла s > 0, а по условию задания следует найти наименьшее значение s, то можно начать примерно с s=500. Во внешнем цикле необходимо постоянно уменьшать значение s на единицу.
    • Важно для внешнего цикла использовать другую переменную, т.к. во внутреннем цикле переменная s меняется, а нам следует каждый шаг внешнего цикла сохранить предыдущее значение s, уменьшив его всего на 1. Используем переменную s_ для этих целей.
    • Из полученных выведенных значений выбираем последнее — наименьшее (59).
    • Бейсик:

       
      Python:

       
      С++:

       

    Ответ: 59

    7.
    7 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Для хранения произвольного растрового изображения размером 486×720 пикселей отведено 80 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. После сохранения информации о пискселях изображение сжимается. Размер итогового файла после сжатия на 15% меньше исходного. Какое максимальное количество цветов можно использовать в изображении?

    Ответ: 4
    ✍ Решение:

      ✎ Способ 1 (программный):
      Pascalabc.net:

      ##
      // I = n * m * i ->
      // -> i = I / (n * m)
      var I:=80.0; 
      I:=80*1024*8; // в биты
      I:=I/0.85; // с учетом сжатия
      var nm:=486*720;
      var ipix:= (I / nm).Floor; // отсекаем дробную часть
      var maxColor:=power(2,ipix);
      print(maxColor)

      


    8.
    8 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Петя составляет слова из слова ПАРУС и записывает их в алфавитном
    порядке в список. Вот начало списка:

    1. ААААА
    2. ААААП
    3. ААААР
    4. ААААС
    5. ААААУ
    6. АААПА
    …

    Укажите номер первого слова в списке, начинающегося на У, в котором две буквы А не стоят рядом?

    Ответ: 2527

    ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.net (использование LINQ, быстрое решение):
    Способ 1:

    1
    2
    3
    4
    5
    6
    7
    
    ##
    var d:='ПАРУС'.Order // сортируем по алфавиту
    .Cartesian(5)
    .Numerate // нумерация
    .where(\(i,w)->w.First = 'У')
    .where(\(i,w)->w.Pairwise.All(\(a,b)-> not ((a = 'А')and(b = 'А'))))
    .first[0].print // выводим именно номер
    Cartesian(5) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 5-знаковых слов из заданных символов
    * LINQ (Language Integrated Query) — язык интегрированных запросов
    PascalABC.net (приближенный к традиционному, долгое решение):
    Способ 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    begin
      var n := 1;
      var str := 'АПРСУ';
      foreach var s1 in str do
        foreach var s2 in str do
          foreach var s3 in str do
            foreach var s4 in str do
              foreach var s5 in str do
              begin
                var words := s1 + s2 + s3 + s4 + s5;
                if (words[1] = 'У') and (not ('АА' in words)) then
                begin
                  print(n, words); exit; 
                end;
                n += 1;
              end;
      print(n)
    end.
    Python:

    1
    
     
    С++:

    1
    
     


    9.
    9 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

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

    Ответ: 2640
    ✍ Решение:

    • Добавляем сверху строку для подписей:
    • В ячейку F2 вводим формулу для поиска квадрата суммы максимального и минимального значения:
    • =(МАКС(A2:E2)+МИН(A2:E2))^2
    • В ячейку G2 вводим формулу для поиска квадратов минимального и максимального значений (она нам пригодится дальше):
    • =(МАКС(A2:E2)^2+МИН(A2:E2)^2)
    • В ячейку H2 вводим формулу для поиска квадратов всех значений по строке минус квадрат суммы максимального и минимального значения:
    • =A2^2+B2^2+C2^2+D2^2+E2^2-G2
    • В ячейке I2 выводим единицу, если значение в ячейке F2 больше значение в ячейке H2, т.е. отвечаем на вопрос задания:
    • =ЕСЛИ(F2>H2;1;0)
    • Смотрим сумму по столбцу I — ответ 2640.

    Ответ: 2640

    10.
    10 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

      
    С помощью текстового редактора определите, сколько отдельных слов «счастие» в тексте романа Л.Н.Толстого «Анна Каренина». При подсчете учитывать регистр слова.

    Ответ: 7
    ✍ Решение:

    • Откройте файл в Miscrosoft Word.
    • Включите расширенный поиск.
    • Отметьте галочкой пункты Учитывать регистр и Только слово целиком.
    • Выберите пункт Выделение при чтенииВыделить всё.

    Ответ: 7


    11.
    11 задание. Досрочный варианта ЕГЭ по информатике 2022, ФИПИ:

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

    Определите минимальный объем памяти в Кбайт, который необходимо выделить для хранения идентификаторов для 32768 пользователей.

    Ответ: 11008

    ✍ Решение:

    • Количество бит на один идентификатор:
    • 10 (цифр) + 1560 = 1570
      1570 <= 211
      11 бит на хранение одного символа
      250*11 = 2750 бит на хранение целого идентификатора
      2750 / 8 <= 344 байт
    • Посчитаем объем в Кбайт для хранения идентификаторов для 32768 пользователей:
    • 344*32768/1024 = 11008

    Ответ: 11008


    12.
    12 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
    А) заменить (v, w)
    Б) нашлось (v)

    Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.

    На выполнение Редактору дана следующая программа:

    ПОКА нашлось(1111) или нашлось(8888)
     ЕСЛИ нашлось(1111)
     ТО заменить(1111, 8)
     ИНАЧЕ заменить(8888, 11)
    КОНЕЦ ПОКА
    

    На вход программе подана строка из 86 подряд идущих символов 8. Какая строка будет получена в результате работы алгоритма.

    Ответ: 88

    ✍ Решение:

      ✎ Решение с использованием программирования:
      PascalABC.NET:
      Вариант 1:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
      begin
         var s := '8'*86;
         while ('1111' in s) or ('8888' in s) do
        begin
          if '111' in s then
            s := s.Replace('1111', '8', 1)
            else
            s := s.Replace('8888', '11', 1);
        end; 
        print(s);
      end.

      Питон:

      1
      2
      3
      4
      5
      6
      7
      
      s = 86 * '8'
      while "1111" in s or "8888" in s:
        if "111" in s:
          s = s.replace( "1111", "8", 1 )
        else:
          s = s.replace( "8888", "11", 1 )
      print(s)

    13.
    13 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
    Какова длина самого длинного пути из города А в город М?
    13 задание 2022

    Ответ: 8
     

    14.
    14 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Результат выражения:

    3 ∙ 162018 - 2 ∙ 81028 - 3 ∙ 41100 - 21050 - 2022 

    записали в 4-ричной системе счисления. Сколько троек в полученной записи?

    Ответ: 4027

     ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.NET:

    uses school;
    begin
      var numb: Biginteger; 
      numb := 3*Biginteger.Pow(16,2018) - 2* Biginteger.Pow(8,1028)-3*Biginteger.Pow(4,1100)-Biginteger.Pow(2,1050)-2022;
      var n:=numb.ToBase(4).CountOf('3');
      print(n)
    end.
    Python:

     
    С++:

     

    Ответ: 4027

    15.
    15 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».
    Для какого наименьшего натурального числа А формула

    (ДЕЛ(x, 3) → ¬ДЕЛ(x, 5)) ∨ (x + A ≥ 70)

    истинна (т.е. принимает значение 1) при любом целом натуральном значении переменной х.

    Ответ: 55

     ✍ Решение:

    ✎ Решение с использованием программирования:
    PascalABC.NET:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    begin
      for var A := 1 to 500 do
      begin
        var ok := 1;
        for var x := 1 to 1000 do
        begin
          if ((x mod 3 = 0) <= (x mod 5 > 0)) or (x + A >= 70) = false then
          begin
            ok := 0; 
            break;
          end;
        end;
        if (ok = 1) then 
          begin 
          print(A); break;
          end;
      end;
    end.

    Питон:

    C++:

    1
    
     

    16.
    16 задание. Досрочный вариант ЕГЭ по информатике 2021, ФИПИ:

    Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

    F(n) = 2, при n < 3
    F(n) = F(n–1) + F(n-2) - n, при n > 2 и n - четно
    F(n) = F(n-2) - F(n-1) + 2n, при n > 2 и n - нечетно
    

    Чему равно значение функции F(30)?

    Ответ: 58

     
    ✍ Решение:

    ✎ Решение с использованием программирования:
    PascalABC.NET:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    function F(n: integer): integer;
    begin
      if n < 3 then
        F := 2;
      if (n mod 2 = 0) and (n > 2) then
        F := F(n - 1)+F(n - 2) - n;
      if (n > 2) and (n mod 2 <> 0) then
        F := F(n - 2) - F(n - 1) + 2*n
    end;
     
    begin
      print(F(30))
    end.

    Питон:

    C++:

    1
    
     

    Ответ: 58

    17.
    17 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые — значения от 1 до 10 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число кратно минимальному числу в последовательности, кратному 17. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

    Ответ: 24 17613

    ✍ Решение:

      ✎ Решение с использованием программирования:

      PascalABC.NET:

      1
      2
      3
      4
      5
      6
      7
      8
      
      ##
      var data := ReadLines('107_17.txt').Select(t -> t.ToInteger).ToArray;
      var minData17:=data.Where(w->w.Divs(17)).min; // минимальный
      var twins := data.NWise(2).Select(ar->ar.Order.ToArray)
          .Where(ar->(ar[0].Divs(minData17)) or (ar[1].Divs(minData17)));
      twins.Count.Print;
      var sums:=twins.Select(t->t[0]+t[1]); // массив сумм  
      sums.max.print;

      Питон:

      1
      
       

      C++:

      1
      
       

    ✎ Решение в Excel:

    • Запустите программу Excel.
    • В меню Файл выберите пункт Открыть и щелкните Обзор.
    • Рядом с полем Имя файла выберите в списке Все файлы (*|*). Откройте файл задания (107_17.txt - Далее, Далее, Готово).
    • В столбце B найдем числа кратные 17 – в ячейку будем выводить само число, иначе, если число не кратно 17, - будем выводить какое-то большое число, например, 100000 (так как будем потом искать минимум).
    • B1
      =ЕСЛИ(ОСТАТ(A1;17)=0;A1;100000)
      
    • Скопируйте формулу на весь столбец.
    • В ячейке C1 добавим формулу для поиска минимального из найденных значений:
    • С1
      =МИН(B:B)
      ответ: 1003
    • В столбце D будем искать подходящие пары: если одно число из пары кратно значению ячейки С1, то будем выводить сумму рассматриваемой пары, а иначе – выводить пустое значение («»)
    • D1
      =ЕСЛИ(ИЛИ(ОСТАТ(A1;C$1)=0;ОСТАТ(A2;C$1)=0);A1+A2;"")
    • Скопируйте формулу на весь столбец.
    • !!!Просмотрите столбец D до конца и сотрите значение в самой последней ячейке (D10000), если оно там есть (сравнение идет со следующей пустой ячейкой)!!!
    • В ячейке Е1 найдем максимальное значение из найденного ряда (максимальную сумму пары):
    • Е1
      =МАКС(D:D)
      17613
    • В ячейке F1 введем формулу для поиска количества подходящих пар:
    • F1
      =СЧЁТ(D:D)
      24
    • !!! В ответе запишем в том порядке, в котором просится в задании!!! – сначала 24, затем 17613

    18.
    18 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

      
    Квадрат разлинован на N×N клеток (1 < N < 30). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю.
    Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.
    Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
    Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
    В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

    Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.

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

    Для указанных входных данных ответом должна быть пара чисел:
    38  22

    Ответ: 2174 1145

    ✍ Решение:

      ✎ Электронные таблицы:

    • Для решения будем использовать метод динамического программирования - решать будет с конца к началу.
    • Откройте файл электронной таблицы. Скопируем таблицу и вставим ее ниже - это будет шаблон для результирующей таблицы, полученной после решения задачи.
    • Выделите ячейки скопированной таблицы каким-либо цветом, для обозначения ее границ. Теперь удалите все значения в результирующей таблице:
    • Так как задание решается с конца, то выделим последнюю ячейку, в которой окажется Робот - нижняя правая ячейка O31 результирующей таблицы. Робот просто соберет монету, которая находится в этой ячейке исходной таблицы - O15. Поэтому для ячейки возьмем значение из исходной таблицы. Введите формулу:
    • формула для O31:
      =O15

      Попасть в данную ячейку O15 Робот мог, либо двигаясь из ячейки N15, либо из O14.

    • Рассмотрим ячейку N31. В ней Робот собирает монету, значение которой возьмем из исходной таблицы (ячейка N15). Ну и поскольку дальше он попадет только в ячейку O31, то необходимо прибавить значение этой ячейки.
    • формула для N31:
      =N15+O31
    • Для всей нижней строки таблицы мы можем утверждать следующее: из любой ячейки Робот может двигаться только в соседнюю ячейку справа. То есть Робот будет собирать монету с текущей ячейки и при это необходимо прибавлять значение соседней ячейки справа. То есть формула, которую мы ввели в ячейку N31 будет такой же и для всех оставшихся ячеек строки. Скопируйте формулу на всю строку.
    • Рассмотрим ячейку O30. В ней Робот собирает монету, значение которой возьмем из исходной таблицы (ячейка O14). Ну и поскольку дальше он попадет только в ячейку O31, то необходимо прибавить значение этой ячейки.
    • формула для O30:
      =O14+O31
    • Для всего столбца O таблицы мы можем утверждать следующее: из любой ячейки Робот может двигаться только в соседнюю ячейку снизу. То есть Робот будет собирать монету с текущей ячейки и при это необходимо прибавлять значение соседней ячейки снизу. То есть формула, которую мы ввели в ячейку O30 будет такой же и для всех оставшихся ячеек столбца. Скопируйте формулу.

    • В ячейке N30 Робот собирает монету из текущей ячейки (берем значение из исходной таблицы - N14), и затем у него альтернатива движения: либо в ячейку N31, либо в O30. В задании необходимо найти, как максимальную, так и минимальную сумму монет. Найдем сначала максимальную. Для этого введите формулу в N30:

      =N14+МАКС(N31;O30)
    • Если проследовать логике движения Робота, то получается, что данная формула будет верной и для всех оставшихся ячеек таблицы. Скопируйте формулу из ячейки N30, использовав маркер копирования, во все оставшиеся ячейки таблицы. Стены мы учтем позже.
    • Восстановите границы стен из исходной таблицы (нарисуйте их опять).
    • Заполним формулы для стен. Для ячеек со стеной диапазона C24:F24 значение формул будут такими же, как у соответствующих им ячеек нижней строки - C31:F31. Скопируйте формулы у этих ячеек и вставьте их для диапазона C24:F24.

    • То же самое касается ячеек J21:K21 - для них нужна скопированная формула ячеек J31:K31.
    • Формулы ячеек K22:K28 будут соответствовать ячейкам диапазона O22:O28. Так же скопируйте их.
    • Найденное максимальное значение - 2174.
    • Теперь найдем минимальную сумму. Для этого измените формулу, заменив МАКС на МИН. И скопируйте снова данную формулу во всю оставшуюся таблицу.
    • Найденное минимальное значение - 1145.

    Ответ: 2174 1145


    19.
    19 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) 1 камень или увеличить количество камней в куче в два раза.

    Например, пусть в одной куче 10 камней, а в другой 5 камней, такую позицию в игре будем обозначать (10, 5). Тогда за один ход можно получить любую из четырёх позиций: (11, 5), (10, 6), (20, 10) и (10, 10).

    Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 223. В начальный момент в первой куче было 17 камней, во второй куче – S камней, 1 ≤ S ≤ 205.

    Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
    Известно, что Ваня выиграл своим первым ходом после неудачного хода Пети. При каком минимальном значении S такое возможно?

    Ответ: 52
    🎦 Решение подобного задания:

    20.
    20 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Известно, что Петя имеет выигрышную стратегию. Укажите два значения при которых:

  • Петя не может победить первым ходом;
  • при любом ходе Вани Петя побеждает своим вторым ходом.
  • Найденные значения запишите в ответе в порядке возрастания.

    Ответ: 94 102


    21.
    21 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Известно, что Ваня имеет выигрышную стратегию за один или два хода, при этом не имеет выигрышной стратегии в один ход. Найдите минимальное значение S, при котором это возможно.

    Ответ: 93


    22.
    22 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Ниже записана программа. Получив на вход число s, эта программа печатает два числа. При каком наименьшем значении s после выполнения программы на экран будет выведено сначала число 10, затем 19.

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    var
      s, P, Q, K1, K2: longint;
     
    begin
      readln(s);
      P := 10; Q := 8;
      K1 := 0; K2 := 0;
      while s <= 100 do
      begin
        s := s + P;
        K1 := K1 + 1;
      end;
      while s >= Q do
      begin
        s := s - Q;
        K2 := K2 + 1;
      end;
      K2 := K2 + s;
      K1 := K1 + s;
      writeln(K1);
      write(K2);
    end.
    Алгоритмический язык:

    алг
    нач
    цел s, P, Q, K1, K2
    P := 10
    Q := 8
    K1 := 0
    K2 := 0
    нц пока s <= 100
     s := s + P
     K1 := K1 + 1
    кц
    нц пока s >= Q
     s := s - Q
     K2 := K2 + 1
    кц
    K1 := K1 + s
    K2 := K2 + s
    вывод K1
    вывод K2
    кон 
    
    Python:

    s = int(input())
    P = 10
    Q = 8
    K1 = 0
    K2 = 0
    while s <= 100:
     s = s + P
     K1 = K1 + 1
    while s >= Q:
     s = s – Q
     K2 = K2 + 1
    K1 += s
    K2 += s
    print(K1, K2)
    С++:

    #include <iostream>
    using namespace std;
    int main(){
    int P = 10, Q = 8, s;
    int K1 = 0, K2 = 0;
    cin >> s;
    while (s <= 100) {
     s = s + P;
     K1 = K1 + 1;
    }
    while (s >= Q) {
     s = s - Q;
     K2 = K2 + 1;
    }
    K1 = K1 + s; K2 = K2 + s;
    cout << K1 << endl << K2;
    return 0;
    }

    Ответ: 70
    ✍ Решение:

      ✎ Способ 1. Программирование:
      Язык Pascal:

      var
        s, s_, P, Q, K1, K2: longint;
       
      begin
        s_ := -100;
        while true do
        begin
          s := s_;
          P := 10; Q := 8;
          K1 := 0; K2 := 0;
          while s <= 100 do
          begin
            s := s + P;
            K1 := K1 + 1;
          end;
          while s >= Q do
          begin
            s := s - Q;
            K2 := K2 + 1;
          end;
          K2 := K2 + s;
          K1 := K1 + s;
          if (k1 = 10) and (k2 = 19) then
          begin
            print(s_); break;
          end;
          s_ := s_ + 1;
        end;
      end.

    Ответ: 70


    23.
    23 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Исполнитель преобразует число на экране.
    У исполнителя есть две команды, которым присвоены номера:
    1. Прибавить 2
    2. Умножить на 2
    Первая команда увеличивает число на экране на 2, вторая – вдвое. Программа для исполнителя – это последовательность команд.

    Сколько существует таких программ, которые исходное число 1 преобразуют в число 52 и при этом траектория вычислений программы содержит число 16?
    Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

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

    Ответ: 105

    ✍ Решение:

    • Сначала найдём количество программ для перехода от числа 1 к числу 16, а затем от числа 16 к 52.
    • Напишем программу, реализующую алгоритм поиска результата, вычисления по рекуррентным формулам организуем с помощью рекурсии.
    • Рекурсивная функция, которая возвращает количество программ для преобразования числа start в число x:
    • Паскаль: решение №1 (траектория от 1 к 52)

      function f(start, x: integer): integer;
      begin
        var k: integer;
        if start > x then result := 0
        else if start = x then result := 1
        else begin // обязательные операторные скобки
          k := k + f(start + 2, x) + f(start *2, x);
          result := k;
        end;
      end;
       
      begin
        writeln(f(1, 16)*f(16, 52));
      end.

      Паскаль: решение №2 (траектория от 52 к 1)

      function func( start, x: integer ): integer;
      var k: integer;
      begin
        if x < start then 
          func := 0 // если число x меньше нач. значения, кол-во программ равно 0 
        else 
          if x = start then 
            func := 1 // если число x = нач. значению, кол-во программ равно 1 
        else 
          begin
          k := func( start, x-2 ); //учитываем кол-во программ предыдущего числа
          // если число чётное, нужно добавить ещё кол-во программ для числа x//2: 
          if x mod 2 = 0 then 
            k := k + func( start, x div 2 );
          func := k;
        end;
      end;
       
      begin
       writeln( func(1,16) * func(10,52) );
      end.

    Ответ: 105


    24.
    24 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

     
    Текстовый файл состоит из символов A, B и C.
    Определите максимальное количество идущих подряд пар символов AB или CB в прилагаемом файле.
    Искомая подпоследовательность должна состоять только из пар AB, или только из пар CB, или только из пар AB и CB в произвольном порядке следования этих пар.
    Для выполнения этого задания следует написать программу.

    Ответ: 65

    ✍ Решение:

      Паскаль:
      Решение 1:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      
       
      begin
        assign(input, '107_24.txt');
        var s := readstring;
        var maxLen := 0;
        var i := 1;
        var k := 0;
        while i <= Length(s) - 1   do
        begin
          if (s[i] = 'A') and (s[i + 1] = 'B') or (s[i] = 'C') and (s[i + 1] = 'B') then 
          begin
            k := k + 1;
            i := i + 2; 
            if k > maxLen then 
              maxLen := k;
          end
          else
          begin
            k := 0;
            i += 1;
          end;
        end;
        println(maxLen);
      end.

      Решение 2:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
      begin
        assign(input, '107_24.txt');
        var s := readstring;
        var maxLen := 0;
        s := s.Replace('CB', 'AB');
        for var i := 1 to 100 do
           if s.Contains('AB' * i) then begin //1 шаг: AB 2 шаг: ABAB ...
            maxLen := i;
          end;
        println(maxLen);
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      
      f= open("107_24.txt")
      s = f.read()
      k=0
      m=0
      i=0
      while i<=len(s)-1:
          if (s[i]=='A' and s[i+1]=='B') or (s[i]=='C' and s[i+1]=='B'):
              k+=1
              i+=2
              if k>m:
                  m=k
          else:
              k=0
              i+=1
      print(m)

    25.
    25 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
    — символ «?» означает ровно одну произвольную цифру;
    — символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
    Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 12345?6?8 и делящиеся на 17 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 17.

      
    Ответ:

    123450668 7261804
    123451688 7261864
    123456618 7262154
    123457638 7262214
    123458658 7262274
    123459678 7262334

    ✍ Решение:

    ✎ :

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      
      begin
        for var i:=123450608 to 123459698 do
        begin
          if i mod 17 = 0 then
          begin
            if ((i div 100)mod 10 =6) and(i mod 10=8) then
              println(i, i div 17)
          end;
        end;
      end.
      Python:

      1
      
       
      С++:

      1
      
       


    26.
    26 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

     
    В лесополосе осуществляется посадка деревьев. Причем саженцы высаживают рядами на одинаковом расстоянии.
    Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие саженцы прижились. Необходимо определить ряд с максимальным номером, в котором есть подряд ровно 11 неприжившихся саженцев, при условии, что справа и слева от них саженцы прижились.
    В ответе запишите сначала наибольший номер ряда, затем наименьший номер из неприжившихся мест.

    Входные данные.
    В первой строке входного файла 26.txt находится число N - количество занятых мест (натуральное число, не превышающее 10 000). Каждая из следующих N строк содержит два натуральных числа, не превышающих 100 000: номер ряда и номер занятого места (на котором растет деревце).

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

    Пример входного файла:

    7
    40 30
    40 34
    50 125
    50 129
    50 64
    50 68
    50 70
    

    Ответ для примера (при поиске 3 подряд идущих неприжившихся саженцах):

    50 65

    Ответ: 2261 5087

    ✍ Решение:

    ✎ Способ 1. В Excel:

    • Запустите программу Excel.
    • В меню Файл выберите пункт Открыть и щелкните Обзор.
    • Рядом с полем Имя файла выберите в списке Все файлы(*|*).
    • Щёлкните Далее, а затем установите флажок рядом с пунктом Пробел:
    • Затем Готово.
    • В открытом файле перенесите первую строку в любое свободное место вправо.
    • Удалите первую строку.
    • Выделяем два столбца – Данные – Щелкаем Удалить дубликаты
    • Опять выделяем оба столбца и выбираем настраиваемую сортировку:
    • Отсортируйте столбец А по убыванию, добавьте Уровень и отсортируйте столбец В по возрастанию.
    • В ячейку С1 занесите число 0.
    • Нам нужны разности равные 12, ведь между 1 местом и 13 местом находиться 11 мест.
    • В ячейку С2 вставим формулу для нахождения подходящих рядов: в которых номер ряда совпадает (по ячейкам столбца А) и разность мест = 12 (по ячейкам столбца В). Выводить будем номер подходящего места неприжившегося саженца с учетом, что текущее значение столбца B – это место занято, а следующее (+1), как раз значение неприжившегося саженца:
    • =ЕСЛИ(И(A2=A1;B2-B1=12);B1+1;"")
    • Выделите столбец С поставить фильтр, убрав пустые ячейки.
    • Просмотрите значение столбца А. Самое верхнее значение (2261) - это максимальный номер ряда. А значение столбца С в той же строке (5087) - это номер места.

    Ответ: 2261 5087

    Видео на RuTube здесь


    -->

    27.
    27 задание. Досрочный вариант ЕГЭ по информатике 2022, ФИПИ:

    A
    B
    Задание выполняется с использованием прилагаемых файлов

      
    В городе M расположена кольцевая автодорога длиной в N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы стоимость доставки мусора была минимальной. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с 1 до N.
    Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?

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

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

    6
    8
    20
    5
    13
    7
    19
    

    Для данного примера ответ — 6 (7⸱1 + 13⸱2 + 5⸱3 + 20⸱2 + 8⸱1 + 19⸱0).

    Ответ: 8 41495

    ✍ Решение:

      Решение программированием вариант B:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      
      ###
      uses school;
       
      assign(input, '27-99b.txt'); 
      //reset(input); 
      var n:=readinteger; //var n := ri; //сокращение
      var s1, s2, s3, s4, m, p: int64;
      var a := new int64[n * 2 + 1];// массив двойного размера
      var nd2 := n div 2; // половина N
      for var i := 1 to nd2 + 1 do
      begin
        var x :=readinteger;//var x := ri;
        s1 += x * (i - 1); // стоимость доставки до 1 пункта (1 половина + дальний пункт)
        s3 += x;// сумма данных первых N+1
        a[i] := x; a[i + n] := x
      end;
      s3 -= a[1];
      for var i := nd2 + 2 to n do
      begin
        var x := ri;
        s2 += x * (n - i + 1);// стоимость доставки до 1 пункта (2 половина )
        s4 += x;// сумма данных остальных N-1
        a[i] := x;
        a[i + n] := x
      end;
       
      m := s1 + s2; // сумма доставки до 1 пункта
      p := 1;
      for var i := 2 to n do // перебор для остальных пунктов
      begin
        s1 := s1 - s3 + a[i + nd2] * nd2;
        s3 := s3 + a[i + nd2] - a[i];
        s2 := s2 + s4 + a[i - 1] - a[i + nd2] * nd2;
        s4 := s4 + a[i - 1] - a[i + nd2];
        if s1 + s2 < m then (m, p) := (s1 + s2, i);
       
      end;
      pr(p)//ответ
      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      data = list(map(int, open("27-99b.txt").readlines()))
      del data[0]
      data1 = data * 2
      s = 0
      # Считается сумма для первого элемента
      for i in range(0, len(data)//2 + 1):
          s += data[i] * i
      k = len(data) // 2 - 1
      for j in range(i + 1, len(data)):
          s += data[j] * k
          k-=1
      res = [s]
      # Относительно первого с помощью префиксных сумм вычитаем на сколько изменяется следующее значение и добавляем его в список.
      for i in range(len(data1)-1):
          data1[i+1] += data1[i]
      for i in range(0, len(data)):
          res.append(res[i] + (data1[len(data) + i] - data1[i + len(data)//2]) - (da-ta1[i + len(data)//2] - data1[i]))
      # Выводим индекс минимальной суммы в списке + 1
      print(res.index(min(res))+1)
      С++:

      1
      
       

    Ответ: 8 41495



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

    Демоверсия егэ информатика 2022 решение

    группа vk вконтакте

    группа fb facebook

    *** ПЛЕЙЛИСТ КАНАЛА ЮТЬЮБ ***
     
    ЕГЭ по информатике -> демоверсия ЕГЭ 2022
     
    Скачать pdf демоверсии варианта ->
      

    1.
    1 задание. Демо ЕГЭ 2022 информатика, ФИПИ:

    На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).

    1 2 3 4 5 6 7
    1 3 4
    2 3 12 13
    3 10 11
    4 10 9 7
    5 4 12 11 9 8 6
    6 13 8 5
    7 7 6 5

    Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
    Определите, какова сумма протяжённостей дорог из пункта Б в пункт В и из пункта Г в пункт Д.
    В ответе запишите целое число.

    Ответ: 20
    🎦

    Видео на RuTube здесь


    2.
    2 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Миша заполнял таблицу истинности логической функции F

    ¬(y → (x ≡ w)) /\ (z → x)

    но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

    Перем.1 Перем.2 Перем.3 Перем.4 Функция
    ??? ??? ??? ??? F
    1 1 1
    0 0 1
    0 1 0 1

    В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.).

    Ответ: wxyz
      
    🎦
    Решение подобного задания (программирование):


    3.
    3 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
    Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.

    ID операции Дата ID магазина Артикул Тип операции Количество упаковок, шт. Цена, руб./шт.

    Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.

    Артикул Отдел Наименование Ед. изм. Количество в упаковке Поставщик

    Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.

    ID магазина Район Адрес

    На рисунке приведена схема указанной базы данных.

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

    Ответ: 966
     
    🎦

    Видео на RuTube здесь


    4.
    4 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Для кодирования некоторой последовательности, состоящей из букв Л, М, Н, П, Р, решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Для букв Л, М, Н использовали соответственно кодовые слова 00, 01, 11. Для двух оставшихся букв – П и Р – кодовые слова неизвестны.
    Укажите кратчайшее возможное кодовое слово для буквы П, при котором код будет удовлетворять указанному условию. Если таких кодов несколько, укажите код с наименьшим числовым значением.

    Ответ: 100
    🎦

    Видео на RuTube здесь


    5.
    5 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
    1. Строится двоичная запись числа N.
    2. К этой записи дописываются справа ещё два разряда по следующему правилу:
      а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа).

    Например, запись 11100 преобразуется в запись 111001;

     б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
    Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
    Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.

    Ответ: 19
      
    ✍ Решение:

      ✎ Решение аналитическим способом:

    • Заметим, что после второго пункта условия задачи получаются только четные числа (т.к. если число в двоичной системе заканчивается на 0, то оно четное). Таким образом, нас будут интересовать только четные числа.
    • Наименьшим возможным числом, превышающим 77, является число 78. С ним и будем работать.
    • Переведем 78 в двоичную систему счисления. Используя компьютер это можно сделать с помощью программистского режима калькулятора. Либо в консоли интерпретатора Python набрать bin(78). Получим:
    • 1001110
    • В данном числе выделенная часть — это N. Значит, необходимое нам двоичное число — это 10011. После первого пункта задачи к данному числу должна была добавиться справа единица, так и есть: 100111. А затем добавляется 0: 1001110. Соответственно, оно подходит.
    • Переведем его обратно в десятичную систему, используя калькулятор либо консоль пайтон:
    • int('10011',2)
    • Получим 19.
    • ✎ Решение с использованием программирования:

      PascalAbc.NET:

      uses school;
       
      begin
        var n_ := 1;
        while True do
        begin
          var n := n_;
          var ost := bin(n).CountOf('1') mod 2; 
          //в двоичной с.с. добавляем разряд (*2) и остаток к этому разряду (+ost)
          n := 2 * n + ost; 
           // получаем остаток при делении на 2 :
          ost := bin(n).CountOf('1') mod 2; 
          n := 2 * n + ost;
          if n > 77 then
          begin
            println(n_);
            break
          end;
          n_ += 1;
        end;
      end.
      Python:

      n_ = 1
      while True:
          n = n_
          r = str(bin(n))
          r = r[2:]
          for i in range(2):
              if r.count('1') % 2 == 0:
                  r+='0'
              else:
                  r+='1'
       
          n = int(r, base=2)
          if n > 77:
              print(n_,n)
              break
          n_+=1

    Ответ: 19

    🎦 -> аналитическое решение
      
    Видео на RuTube здесь

     
    🎦 -> решение с программированием (на Паскале) подобного задания
      

    Видео на RuTube здесь


    6.
    6 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Определите, при каком наименьшем введённом значении переменной s программа выведет число 64. Для Вашего удобства программа представлена на четырёх языках программирования.

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    var
      s, n: integer;
     
    begin
      readln(s);
      s := s div 10;
      n := 1;
      while s < 51 do
      begin
        s := s + 5;
        n := n * 2
      end;
      writeln(n)
    end.
    Алгоритмический язык:

    алг
    нач
     цел n, s
     ввод s
      s := div(s, 10)
      n := 1
     нц пока s < 51
      s := s + 5
      n := n * 2
    кц
    вывод n
    кон
    
    Python:

    s = int(input())
    s = s // 10 
    n = 1
    while s < 51:
       s = s + 5
       n = n * 2
    print(n)
    С++:

    #include <iostream>
    using namespace std;
    int main()
    { int s, n;
     cin >> s;
     s = s / 10;
     n = 1 ;
     while (s < 51) { s = s + 5; n = n * 2; }
     cout << n << endl;
     return 0;
    }

    Ответ: 259
      

    ✍ Решение:

      ✎ Способ 1 (программный):
      Pascalabc.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      
      begin
        var s1 := 509;
        while true do // внешний цикл, бесконечный
        begin
          var s := s1;
          s := s div 10;
          // --- код из условия задания --- //
          var n := 1;
          while s < 51 do
          begin
            s := s + 5; 
            n := n * 2;
            if n = 64 then // если найдено, то выводим соответствующее s
            begin
              print(s1); 
              exit;  // выход из бесконечного цикла 
            end;
          end;
          s1 := s1 - 1; 
        end;
      end.

      Пояснение:

    • Поскольку условие цикла s < 51, а по условию задания следует найти наименьшее значение s, то можно начать с s=509, так как далее идет оператор s := s div 10;, который присваивает s значение 50 (<51). Во внешнем цикле необходимо постоянно уменьшать значение s на единицу.
    • Важно для внешнего цикла использовать другую переменную, т.к. во внутреннем цикле переменная s меняется, а нам следует каждый шаг внешнего цикла сохранить предыдущее значение s, уменьшив его всего на 1. Используем переменную S1 для этих целей.
    • Бейсик:

       
      Python:

      s1 = 509
      while True:  # внешний цикл, бесконечный
          s = s1
          # --- код из условия задания --- 
          s = s//10
          n = 1
          while s < 51:
              s = s + 5
              n = n * 2
          # --- конец кода из условия задания --- 
              if n == 64:
                  print(s1)
                  quit()
          s1 -= 1
      С++:

       

    Ответ: 259

    🎦

    Видео на RuTube здесь


    7.
    7 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Для хранения произвольного растрового изображения размером 128×320 пикселей отведено 20 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков.
    Какое максимальное количество цветов можно использовать в изображении?

    Ответ: 16
      
    🎦

    Видео на RuTube здесь


    8.
    8 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Все четырёхбуквенные слова, в составе которых могут быть только буквы Л, Е, М, У, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1.
    Ниже приведено начало списка.

    1. ЕЕЕЕ
    2. ЕЕЕЛ
    3. ЕЕЕМ
    4. ЕЕЕР
    5. ЕЕЕУ
    6. ЕЕЛЕ
    …

    Под каким номером в списке идёт первое слово, которое начинается с буквы Л?

    Ответ: 126
      ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.net (использование LINQ, быстрое решение):
    Способ 1:

    1
    2
    3
    4
    5
    6
    
    ###
    var d:='лемур'.Order // сортируем по алфавиту
    .Cartesian(4)
    .Numerate // нумерация
    .where(\(i,w)->w.first='л') // рассматриваем и номер и слово
    .first[0].print // выводим именно номер
    Cartesian(3) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 3-знаковых слов из заданных символов
    * LINQ (Language Integrated Query) — язык интегрированных запросов
    PascalABC.net (приближенный к традиционному, долгое решение):
    Способ 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    begin
      var n:=1;
      var str:='елмру';
      foreach var s1 in str do
        foreach var s2 in str do
          foreach var s3 in str do
            foreach var s4 in str do
              begin
                var words:=s1+s2+s3+s4;
                if (words[1]='л') then
                begin
                  print(n);exit;
                  end;
                  n:=n+1;
                end;
          end.
    PascalABC.net (приближенный к традиционному, долгое решение):
    Способ 3:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    begin
      var str := 'ЕЛМРУ';
      var n := 1;
      for var s1 := 1 to length(str) do
        for var s2 := 1 to length(str) do 
          for var s3 := 1 to length(str) do
            for var s4 := 1 to length(str) do 
            begin
              var slovo := str[s1] + str[s2] + str[s3] + str[s4];
              if slovo[1] = 'Л' then
              begin
                print(n);
                exit;
              end;
              n += 1;
            end;
    end.
    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    str = 'ЕЛМРУ'
    n = 1
    for s1 in str:
        for s2 in str: 
            for s3 in str:
                for s4 in str:
                    slovo = s1 + s2 + s3 + s4
                    if slovo[0] == 'Л':
                        print(n)
                        quit()
                    n += 1
    С++:

    1
    
     

    🎦 (программный способ)

    Видео на RuTube здесь

    🎦 (теоретический способ)

    Видео на RuTube здесь


    9.
    9 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

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

    Ответ: 2453
    🎦

    Видео на RuTube здесь


    10.
    10 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

      
    С помощью текстового редактора определите, сколько раз, не считая сносок, встречается слово «долг» или «Долг» в тексте романа в стихах А.С. Пушкина «Евгений Онегин». Другие формы слова «долг», такие как «долги», «долгами» и т.д., учитывать не следует. В ответе укажите только число.

    Ответ: 1

    🎦

    Видео на RuTube здесь


    11.
    11 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
    Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.

    Ответ: 600
    🎦 (теоретическое решение)

    Видео на RuTube здесь


    12.
    12 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
    А) заменить (v, w).

    Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

    Б) нашлось (v).

    Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.


    Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.

    НАЧАЛО
    ПОКА нашлось (2222) ИЛИ нашлось (8888)
      ЕСЛИ нашлось (2222)
        ТО заменить (2222, 88)
        ИНАЧЕ заменить (8888, 22)
      КОНЕЦ ЕСЛИ
    КОНЕЦ ПОКА
    КОНЕЦ

    Ответ: 22
      
    ✍ Решение:

      ✎ Решение с использованием программирования:
      PascalABC.NET:
      Вариант 1:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      
      begin
         var s := '8'*70;
         var p2 := Pos('2222',s);
         var p8 := Pos('8888',s);
         while (p2 > 0) or (p8 > 0) do begin
           if p2 > 0 then begin
             Delete( s, p2, 4 );
             Insert( '88', s, p2 );
           end
           else begin
             Delete( s, p8, 4 );
             Insert( '22', s, p8 );
           end;
           p2 := Pos('2222',s);
           p8 := Pos('8888',s);
         end; 
         write(s);
      end.

      Вариант 2:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
      begin
        var s: string := '8' * 70;
        while ('2222' in s) or ('8888' in s) do // ИЛИ: while (s.contains('2222')) or (s.contains('8888')) do
        begin
          if ('2222' in s) then // ИЛИ: if (s.contains('2222')) then
            s := s.replace('2222', '88')
          else
            s := s.replace('8888', '22');
        end;
        writeln(s);
      end.

      Питон:

      1
      2
      3
      4
      5
      6
      7
      
      s = 70 * '8'
      while "2222" in s or "8888" in s:
        if "2222" in s:
          s = s.replace( "2222", "88", 1 )
        else:
          s = s.replace( "8888", "22", 1 )
      print(s)

     
    🎦

    Видео на RuTube здесь


    13.
    13 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
    Сколько существует различных путей из города А в город М, проходящих через город В?
    13 задание демо 2022

    Ответ: 24
     
    Разбор подобного задания смотрите в видео:
    🎦 Видео
    Видео на RuTube здесь


    14.
    14 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Значение арифметического выражения:

    3*438 + 2*423 + 420 + 3*45 + 2*44 + 1 

    записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?

    Ответ: 15
     ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.NET:

    begin
      var numb: Biginteger; 
      numb := 3*Biginteger.Pow(4,38) + 2*Biginteger.Pow(4,23)+Biginteger.Pow(4,20) +
     3*Biginteger.Pow(4,5) +2*Biginteger.Pow(4,4) +1;
      var digit: biginteger;
      var n := 0;
      while numb > 0 do
      begin
        digit := numb mod 16;
        if digit = 0 then n += 1;
        numb := numb div 16
      end;
      print(n)
    end.
    Python:

    x = 3*4**38 + 2*4**23 + 4**20+3*4**5 +2*4**4 +1
    k = 0
    while x:
        if x % 16 == 0: k += 1
        x //= 16
    print( k )
    С++:

     

    ✎ Решение аналитическим способом:

    • По возможности приведем каждое слагаемое к степеням 16. Учтем, что:
    • 4n=16n/2
    • Получим:
    • 3*1619 + 2*(41*1611) + 3*(41*162) + 2*162 + 1
    • Далее рассуждаем так: количество нулей можно найти, если из общего количества цифр в результирующем числе вычесть количество не нулей (любых других цифр).
    • Общее количество цифр найдем из самого большого слагаемого 3*1619:
    • Формула: 16n=10..0[n штук]16 (в 16 с.с.)
      3*1619 = 3*10..016 -> 19 нулей + 1 другая цифра(3), т.е. всего 20 цифр

    • Рассмотрим другие слагаемое, используя аналогичную формулу. Будем считать в них цифры, отличные от нуля (другая цифра):
    • 2*(41*1611) = 2*(4*10..0[11 штук]16=80..0[11 штук]16 -> одна другая цифра
      41*162 = 4*10016 = 400 -> одна другая цифра
      3*(41*162) = 3*4*10016 = С0016 -> одна другая цифра
      2*162 =2*10016 = 20016 -> одна другая цифра
      1 -> одна другая цифра
    • Итого получаем 5 других цифр, отличных от 0. Отнимем из общего количества цифр и получим количество нулей:
    • 20-5=15

    Ответ: 15

    🎦 (программное решение)

    Видео на RuTube здесь


    15.
    15 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80].
    Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение

    (x ∈ D) → ((¬(x ∈ C) /\ ¬(x ∈ A)) → ¬(x ∈ D))

    истинно (т.е. принимает значение 1) при любом значении переменной х.

    Ответ: 12
     ✍ Решение:

    🎦 (теоретическое решение)

    Видео на RuTube здесь


    16.
    16 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

    Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

    F(n) = 1 при n = 1;
    F(n) = n + F(n − 1), если n – чётно,
    F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно

    Чему равно значение функции F(26)?

    Ответ: 4122
      
     
     ✍ Решение:

    ✎ Решение с использованием программирования:
    PascalABC.NET:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    function F(n: integer): integer;
    begin
      if n <= 1 then
        F := 1;
      if n mod 2 = 0 then
        F := n + F(n - 1);
      if (n > 1) and (n mod 2 <> 0) then
        F := 2 * F(n - 2)
    end;
     
    begin
      print(F(26))
    end.

    Питон:

    1
    2
    3
    4
    5
    6
    7
    8
    
    def F( n ):
       if n <= 1: 
          return 1
       if (n % 2 == 0):
          return n + F(n-1)
       if (n>1 and n % 2 != 0):
          return 2 * F(n-2)
    print (F(26))

    C++:

    1
    
     

    Ответ: 4122

    🎦 (программное решение)

    Видео на RuTube здесь


    17.
    17 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар.
    В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

    Например, для последовательности из пяти элементов:
    6; 2; 9; –3; 6 – ответ: 4 11

    Ответ: 2802 1990
     
    ✍ Решение:

      ✎ Решение с использованием программирования:

      PascalABC.NET: LINQ-метод

      1
      2
      3
      4
      5
      6
      7
      8
      
      ##
      var data := ReadLines('17.txt').Select(t -> t.ToInteger).ToArray;
      var twins := data.NWise(2).Select(ar->ar.Order.ToArray)
          .Where(ar->(ar[0].Divs(3)) or (ar[1].Divs(3)));
      twins.Take(4).Print; // [786,835] [-457,786] [-457,495] [-699,495]
      twins.Count.Print;  
      var sums:=twins.Select(t->t[0]+t[1]); // массив сумм  
      sums.max.print;

      PascalABC.NET: быстрое решение

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      ## нужно открыть файл и посмотреть кол-во строк в нем, 5000
      Assign(input, '17.txt');
      var a := ReadArrInteger(5000);
      var k := 0; var max := integer.MinValue;
      for var i := 0 to a.Length - 2 do 
      begin
        if (a[i] mod 3 = 0) or (a[i + 1] mod 3 = 0) then
        begin
          if a[i] + a[i + 1] > max then 
            max := a[i] + a[i + 1];
          k += 1;
        end;
      end;
      print(k, max);

      PascalABC.NET: Классическое решение

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      
      begin
        var f: text;
        var i, k, max, len: integer;
        assign(f, '17.txt');
        reset(f);
        var data: array of integer;
        data := new integer[100000];
        i := 0;
        while not EOF(f) do
        begin
          readln(f, data[i]);
          inc(i); 
        end;
        len := i - 1; k := 0; max := -100;
        for i := 1 to len do
        begin
          if (data[i] mod 3 = 0) or (data[i - 1] mod 3 = 0) then
          begin
            inc(k);
            if data[i] + data[i - 1] > max then
              max := data[i] + data[i - 1];
          end;
        end;
        print(k, max)
      end.

      Питон:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      f = open('17.txt')
      data =[int(x) for x in f]
      k = 0
      m = -100
      for i in range(len(data)-1):
          if data[i]%3==0 or data[i+1]%3==0:
              k+=1
              m = max(m, data[i]+data[i+1])
      print (k,m)

      C++:

      1
      
       

    ✎ Решение в Excel:

    • Запустите программу Excel.
    • В меню Файл выберите пункт Открыть и щелкните Обзор.
    • Рядом с полем Имя файла выберите в списке Все файлы (*|*). Откройте файл задания (17.txtДалее, Далее, Готово).
    • В столбце B будем искать подходящие пары: если одно число из пары кратно трём, то будем выводить сумму рассматриваемой пары, а иначе – выводить пустое значение («»)
    • B1
      =ЕСЛИ(ИЛИ(ОСТАТ(A1;3)=0;ОСТАТ(A2;3)=0);A1+A2;"")
    • Скопируйте формулу на весь столбец.
    • !!!Просмотрите столбец B до конца и сотрите значение в самой последней ячейке (B5000), если оно там есть (сравнение идет со следующей пустой ячейкой)!!!
    • В ячейке С1 введем формулу для поиска количества подходящих пар:
    • С1
      =СЧЁТ(B:B)
      2802
    • В ячейке D1 найдем максимальное значение из найденного ряда (максимальную сумму пары):
    • D1
      =МАКС(B:B)
      1990
    • !!! В ответе запишем в том порядке, в котором просится в задании!!! – сначала 2802, затем 1990

    🎦

    Видео на RuTube здесь


    18.
    18 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Задание выполняется с использованием прилагаемых файлов

      
    Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.
    Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
    Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
    В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

    Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.

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

    Для указанных входных данных ответом должна быть пара чисел:
    38  22

    Ответ: 721 640
    🎦 (решение Excel)

    Видео на RuTube здесь


    19.
    19 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
    Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 29 или больше камней.
    В начальный момент в куче было S камней, 1 ≤ S ≤ 28.
    Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

    Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

    Ответ: 14

    ✍ Решение 1:

    • Ваня может выиграть первым ходом (как бы ни играл Петя), если в куче будет S = 14 камней. Тогда после первого хода Пети в куче будет 15 или 28 камней. В обоих случаях Ваня удваивает кучу и выигрывает в один ход.
    • S = 14
      Петя: 14 + 1 = 15  выигрышная позиция (см. п. а). Выигрывает Ваня
      Петя: 14 * 2 = 28   выигрышная позиция (см. п. а). Выигрывает Ваня
      

      14 - проигрышная позиция

    Ответ: 14
    ✍ Решение 2 (Excel):

    🎦 (решение Excel)

    Видео на RuTube здесь


    20.
    20 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
  • Найденные значения запишите в ответе в порядке возрастания.

    Ответ: 7 13
    ✍ Решение 1:

    • Возможные значения S: 7, 13. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 14 камней (из задания № 19 мы знаем, что это проигрышная позиция): в первом случае удвоением, во втором - добавлением одного камня. Эта позиция разобрана в задании 19. В ней игрок, который будет ходить (теперь это Ваня), выиграть не может, а его противник (то есть Петя) следующим ходом выиграет.
    • S = 7
      Петя: 7 * 2 = 14  проигрышная позиция (см. п. 1 б). Выигрывает Петя
      S = 13
      Петя: 13 + 1 = 14 проигрышная позиция (см. п. 1 б). Выигрывает Петя
      

      7, 13 - выигрышные позиции со второго хода

    Ответ: 7 13

    ✎ Решение 2 (Excel)


    21.
    21 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:

  • у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
  • у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
  • Если найдено несколько значений S, в ответе запишите минимальное из них.

    ✍ Решение:

    • Возможные значения S: 12. После первого хода Пети в куче будет 13 или 24 камня. Если в куче их станет 24, Ваня удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 13 камней, разобрана в задании 20. В этой ситуации игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.
    • S = 12
      Петя: 12 + 1 = 13  
      Ваня: 13 + 1 = 14 проигрышная позиция (см. задание 19). Выигрывает Ваня вторым ходом!
      

    Ответ: 12


    22.
    22 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5.

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    var
      x, L, M, Q: integer;
    begin
      readln(x);
      Q := 9;
      L := 0;
      while x >= Q do
      begin
        L := L + 1;
        x := x - Q;
      end;
      M := x;
      if M < L then
      begin
        M := L;
        L := x;
      end;
      writeln(L);
      writeln(M);
    end.
    Алгоритмический язык:

    алг
    нач
      цел x, L, M, Q
      ввод x
       Q := 9
       L := 0
       нц пока x >= Q
         L := L + 1
         x := x - Q
       кц
       M := x
       если M < L
         то
            M := L
            L := x
       все
       вывод L, нс, M
    кон
    
    Python:

    x = int(input())
    Q = 9
    L = 0
    while x >= Q:
       L = L + 1
       x = x - Q
    M = x
    if M < L:
       M = L
       L = x
    print(L)
    print(M)
    С++:

    #include <iostream>
    using namespace std;
    int main()
    {
     int x, L, M, Q;
     cin >> x;
     Q = 9;
     L = 0;
     while (x >= Q){
       L = L + 1;
       x = x - Q;
     }
     M = x;
     if (M < L){
       M = L;
       L = x;
     }
     cout <<L <<endl <<M <<endl;
     return 0;
    }

    Ответ: 49
      ✍ Решение:

      ✎ Решение с использованием программирования:

      PascalABC.NET:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      
      var
        x, l, M, q: longint;
       
      begin
        for var x_ := 1 to 5000 do
        begin
          x := x_;
          q := 9;
          l := 0;
          while x >= q do
          begin
            l := l + 1;
            x := x - q;
          end;
          M := x;
          if M < l then begin
            M := l;
            l := x;
          end;
          if (l = 4) and (M = 5) then 
            print(x_)
        end;
      end.

    23.
    23 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Исполнитель преобразует число на экране.
    У исполнителя есть две команды, которым присвоены номера:
    1. Прибавить 1
    2. Умножить на 2
    Программа для исполнителя – это последовательность команд.

    Сколько существует программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10?
    Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

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

    Ответ: 28
      
    ✍ Решение:

    • Сначала найдём количество программ для перехода от числа 1 к числу 10, а затем от числа 10 к 20.
    • Будем использовать разные рекуррентные формулы для чётных и нечётных N.
    • Напишем программу, реализующую алгоритм поиска результата, вычисления по рекуррентным формулам организуем с помощью рекурсии.
    • Рекурсивная функция, которая возвращает количество программ для преобразования числа start в число x:
    • Паскаль. Решение 1:

      function f(start, x: integer): integer;
      begin
        var k: integer;
        if start > x then result := 0
        else if start = x then result := 1
        else begin // обязательные операторные скобки
          k := k + f(start + 1, x) + f(start *2, x);
          result := k;
        end;
      end;
       
      begin
        writeln(f(1, 10)*f(10, 20));
      end.

      Паскаль. Решение 2:

      function func( start, x: integer ): integer;
      var k: integer;
      begin
        if x < start then 
          func := 0 // если число x меньше нач. значения, кол-во программ равно 0 
        else 
          if x = start then 
            func := 1 // если число x = нач. значению, кол-во программ равно 1 
        else 
          begin
          k := func( start, x-1 ); //учитываем кол-во программ предыдущего числа
          // если число чётное, нужно добавить ещё кол-во программ для числа x//2: 
          if x mod 2 = 0 then 
            k := k + func( start, x div 2 );
          func := k;
        end;
      end;
       
      begin
       writeln( func(1,10) * func(10,20) );
      end.

    Ответ: 28


    24.
    24 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

     
    Текстовый файл состоит из символов P, Q, R и S.
    Определите максимальное количество идущих подряд символов, среди которых нет идущих подряд символов P.
    Для выполнения этого задания следует написать программу.

    Ответ: 188

    ✍ Решение:

      Паскаль:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      
      var
        f: text;
        i, k, max: integer;
        s: string;
       
      begin
        assign(f, '24.txt');
        reset(f);
        readln(f, s);
        max := 1;
        k := 1; // кол-во подряд идущих без PP
        for i := 2 to length(s) do
        begin
          if (not ((s[i] = 'P') and (s[i - 1] = 'P'))) then
          begin
            inc(k);
            if k > max then 
              max := k;
          end
          else k := 1;
        end;
        write(max)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
      f=open('24.txt')
      s=f.readline()
      m=1
      k=1
      for i in range(2,len(s)):
          if not(s[i]=='P' and s[i-1]=='P'):
              k+=1
              if k > m:
                  m = k
          else:
              k=1
      print(m)

     


    25.
    25 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
    Напишите программу, которая перебирает целые числа, бо́льшие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M оканчивается на 8. Выведите первые пять найденных чисел и соответствующие им значения M.

    Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М.
    Строки выводятся в порядке возрастания найденных чисел.
    Количество строк в таблице для ответа избыточно.

      
    Ответ:

    700005 233338
    700007 100008
    700012 350008
    700015 140008
    700031 24168

    ✍ Решение:

    ✎ Метод полного перебора, неоптимизированный:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      
      begin
        var k := 0;
        for var n := 700000 to 1000000 do
        begin
          var divs := new List<integer>; 
          for var d := 2 to n-1 do
            if n mod d = 0 then begin // пример: n = 16, d = 2 - добавляем оба сомножителя 2*8
              divs.Add(d);    // add 2  
            end;
          // первое условие обязательно, чтобы не было ошибок!
          if (divs.Count>1) and ((divs.Max + divs.Min) mod 10 = 8) then 
          begin
             Println(n,divs.Max+divs.Min);
             k+=1;
             if k=5 then break
            end;
        end;
      end.
      Python:

      1
      
       
      С++:

      1
      
       

    26.
    26 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
     

    Задание выполняется с использованием прилагаемых файлов

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

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

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

    Пример входного файла:

    100 4
    80
    30
    50
    40
    

    При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ для приведённого примера:

    2 | 50
    

    Ответ: 568 50

    ✍ Решение:

      Проанализируем возможное решение:

    • Чтобы вычислить максимальное число пользователей, чьи файлы можно сохранить в архиве, необходимо брать файлы с наименьшим объемом, пока суммарный объем этих файлов меньше свободного объема диска. Т.е. для нижеуказанного примера, будем брать 30 + 40. Файл объемом 50 мы взять уже не сможем, так как 70 + 50 = 120, а это уже больше указанного объема диска (100):
    • 100 4
      80
      30
      50
      40
      
    • Таким образом, мы получили первый ответ - максимальное число пользователей, чьи файлы можно сохранить в архиве - ответ 2.
    • Далее необходимо вычислить максимальный размер имеющегося файла, который может быть сохранён в архиве. Для начала вспомним, что у нас оставался "запас" пространства диска при предыдущем расчете. Давайте вычислим этот запас:
    • 100 - 70 = 30
    • Т.е. мы можем добавить 30 наибольшему возможному числу, из выбранных чисел, чтобы полученная сумма не превысила этот запас. Самое большое число из выбранных - это 40 (30, 40):
    • 30 - 40 <= запаса (30)
      40 - 40 <= запаса (30) 
      50 - 40 <= запаса (30) 
      80 - 40 > запаса (30), не подходит
      
    • Таким образом, наибольшее подходящее число - максимальный размер файла - это 50.
    • ✎ Решение с использованием программирования:
      Теперь построим алгоритм на языках программирования:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      
      begin
        var f: text;
        assign(f, 'proba.txt');
        reset(f);
        var s, n: integer;
        read(f, s); // 100
        read(f, n);  //4  var (s, n) := ReadInteger2;
        var i := 0;
        var data: array of integer;
        data := new integer[n];
        while not EOF(f) do // 
        begin
          readln(f, data[i]); // var data:= ReadArrInteger(n); 
          i += 1;
        end;
        data.Sort;
        var summa := 0;
        var count := 0;
        for count := 0 to data.Length do
        begin
          if summa + data[count] > s then break;
          summa += data[count];
        end;
        print(count);
        var itog := 0;
        var zapas := s - summa;
        for i := 0 to data.Length do
          if data[i] - data[count - 1] <= zapas then
            itog := data[i] else break;
        print(itog)
      end.
      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      
      f = open('26.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)  # максимальный размер файла
      С++:

      1
      
       

    ✎ Решение в Excel:

    • Запустите программу Excel.
    • В меню Файл выберите пункт Открыть и щелкните Обзор.
    • Рядом с полем Имя файла выберите в списке Все файлы(*|*).
    • Щёлкните Далее, а затем установите флажок рядом с пунктом Пробел:
    • Затем Готово.
    • В открытом файле перенесите первую строку с двумя заполненными ячейками в ячейки I2 и J2 (или любое свободное место).
    • Удалите первую строку.
    • Отсортируйте столбец А по возрастанию: Данные - Сортировка
    • В ячейку B1 занесите число, стоящее в А1.
    • В ячейку B2 вставим формулу для подсчета суммы размеров файлов, прибавляя каждое последующее значение до тех пор, пока эта сумма меньше или равна свободному объему диска (I1). Не забываем зафиксировать значение ячейки, чтобы при копировании формулы адрес ячейки не менялся:
    • =ЕСЛИ(И(A2+B1<=I$1;B1<>0);A2+B1;0)
    • Копируем формулу на весь столбец, щелкнув по маркеру копирования ячейки или протянув мышкой формулу.
    • Прокручиваем страницу вниз, просматривая столбец B, до тех пор, пока не появится значение 0. Последнее заполненное значение - 8176 - это сумма объемов файлов, которые вместились с учетом свободного объема диска. А номер строки - 568 - это максимальное число пользователей, чьи файлы можно сохранить в архиве (первое значение для ответа).
    • Вернитесь в верх страницы. Вычислим запас в свободной ячейке (С1):
    • =I1-B568
    • В ячейку D1 внесем формулу для поиска максимального размера файла в архиве (с учетом рассчитанного запаса). Будем выводить значение подходящего размера файла, а как только размер уже будет не подходить - выведем 0. Поскольку формулу будем копировать, не забудьте зафиксировать ячейку с запасом (C$1) и с максимальным объемом файла из ряда подходиящих файлов (A$568)
    • =ЕСЛИ(A1-A$568<=C$1;A1;0)
    • Прокрутите страницу вниз, пока значения столбца D не равны 0. Находим последнее значение - 50 - это и есть максимальный размер файла, который можно поместить в архив.

    Ответ: 568 | 50

    Видео на RuTube здесь


    27.
    27 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:

    A
    B
    Задание выполняется с использованием прилагаемых файлов

      
    Дана последовательность из N натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна k = 43. Найдите среди них подпоследовательность с максимальной суммой, определите её длину. Если таких подпоследовательностей найдено несколько, в ответе укажите количество элементов самой короткой из них.

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

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

    7
    21
    13
    9
    19
    17
    26
    95
    

    В этом наборе можно выбрать последовательности 21+13+9 (сумма 43) и 17+26 (сумма 43). Самая короткая из них, 17 + 26, имеет длину 2. Для указанных программа должна вывести число 2.

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

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

    Ответ: 185 329329
    ✍ Решение:

      Решение для файла А (27-75a.txt), полный перебор:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      
      ##
      Assign(input, '27-75a.txt');
      var N := ReadInteger;
      var K := 43;
      var a: integer;
      var maxSum := 0; 
      var sum := 0;
      var maxLen := 0;
      var l := new List<integer>;
      for var i := 1 to N do // запись всех чисел в список
      begin
        a := ReadInteger;
        l.add(a)
      end;
      var i := 0;
      while i <= n do
      begin
        for var j := i to n-1 do
        begin
          sum += l[j];
          if sum mod 43 = 0 then
          begin
            if sum > maxSum then begin
              maxSum := sum;
              maxlen := j - i +1; // длина
            end
          end;
        end;
        i += 1;
        sum := 0;
      end;
      print(maxlen);
      Python:

      1
      
       
      С++:

      1
      
       


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

    Вариант №5 (тренировочный)

    Решение вариант №5 ЕГЭ тренировочный

    Задание 1:

    На рисунке справа схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о длинах этих дорог (в километрах).

    вариант 5 задание 1 решение
    Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
    Определите длину кратчайшего пути из пункта Г в пункт В.

    ✍ Решение:

      Ответ: 25


      Задание 2:

      Логическая функция F задаётся выражением

      (x ≡ ¬z) → ((x ∨ w) ≡ y)


      На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки.
      Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.

      ✍ Решение:

        Программирование:

        PascalABC.net:

        1
        
         
        Python:

        1
        2
        3
        4
        5
        6
        7
        8
        
        print('x y z w')
        for x in 0, 1:
          for y in 0, 1:
            for z in 0, 1:
              for w in 0, 1:
                F = (x == (not z)) <= ((x or w)==y)
                if not F:              
                      print(x, y, z, w)
        С++:

        1
        
         

      Ответ: xwyz


      Задание 3:

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

      ✍ Решение:

        Ответ: 367


        Задание 4:

        По каналу связи передаются сообщения, содержащие только семь букв: А, Б, К, О, Н, Р, Я. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны:

        А – 010, 
        Р – 011, 
        Я – 10 

        Какое наименьшее количество двоичных знаков потребуется для кодирования слова КОРАН?

        ✍ Решение:

        • Отобразим с помощью дерева известные коды:
        • Остается расположить 4 кода. Поскольку в слове КОРАН все буквы встречаются по одному разу, то расположение букв на дереве не так важно. Но буква Б не встречается, поэтому ее можно располагать в дереве на нижние уровни:
        • Посчитаем количество бит в каждой букве слова:
        • К(3) + О(4) + Р(3) + А(3) + Н(2) = 15
          

        Ответ: 15


        Задание 5:

        На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

        1) Строится двоичная запись числа N.
        2) Затем справа дописываются два разряда: символы 01, если число N чётное, и 10, если нечётное.
        Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.

        Укажите минимальное число R, большее 81, которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе.

        ✍ Решение:

        • Будем переводить числа в 2-ю с.с., начиная с 82, и рассматривать их на соответствие алгоритму:
        • 82 = 01010010 - N четное, должно было добавиться 01
          83 = 01010011 - в конце не может быть "11"
          84 = 01010100 - в конце не может быть "00"
          85 = 01010101 - N нечетное, должно было добавиться 10
          86 = 01010110 - N нечетное, все верно!
          

        Ответ: 86


        Задание 6 (А.Г. Минак):

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

        PascalABC.net:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        
        var s, n, d: integer;
        begin
          readln (d);
          s := 0;
          n := 0;
          while n < 200 do
          begin
            s := s + 64;
            n := n + d
          end;
          writeln(s)
        end.
        Python:

        1
        2
        3
        4
        5
        6
        7
        
        d = int(input())
        s = 0
        n = 0
        while n < 200:
          s = s + 64
          n = n + d
        print(s)
        С++:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        
        #include <iostream>
        using namespace std;
        int main() { 
        int d, s = 0, n = 0;
        cin >> d;    
        while (n < 200) {
          s = s + 64;
          n = n + d;
          }
        cout << s << endl;
        return 0;
        }

        ✍ Решение:

          Программирование:

          PascalABC.net:

          1
          
           
          Python:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          
          d = 1
          while True:  # внешний цикл, бесконечный
            d1 = d 
            # --- код из условия задания --- 
            s = 0
            n = 0
            while n < 200:
              s = s + 64
              n = n + d1
            # --- конец кода из условия задания --- 
            if s == 192:
              print(d1)
              break
            d += 1
          С++:

          1
          
           

        Ответ: 67


        Задание 7:

        Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла – 70 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в 4 раза выше и частотой дискретизации в 3,5 раза меньше, чем в первый раз. Сжатие данных не производилось.
        Укажите размер файла в Мбайт, полученного при повторной записи.

        ✍ Решение:

        • Выпишем все известные данные до и после оцифровки:
        • S = 1 I = 70Мб
           
          S = 2 
          B > 4 
          F < 3.5
          
        • Получим изменение объема файла:
        • I2 = I1*2*4:3.5 = 70*2*4:3.5 = 160 Мб
          

        Ответ: 160


        Задание 8 (А.М. Кабанов):

        Юрий составляет 4-буквенные слова из букв П, Р, И, К, А, З. Каждую букву можно использовать не более одного раза, при этом в слове нельзя использовать более одной гласной.

        Сколько различных кодов может составить Юрий?

        ✍ Решение:

        • Рассмотрим все варианты расположения гласной буквы:
        • 2  4  3  2
          г
          4  2  3  2
             г
          4  3  2  2
                г
          4  3  2  2
                   г
          
          Получаем: 48 * 4 = 192
          
        • Остался вариант, когда гласных нет:
        • 4  3  2  1 = 24 
        • Итого: 24 + 192 = 216

        Ответ: 216


        Задание 9 (А. Кабанов):

        Откройте файл электронной таблицы 9-0.xls, содержащей результаты ежечасного измерения температуры воздуха на протяжении трёх месяцев.
        Найдите среднее значение измерений, в которых температура не превышала 15 градусов. В ответе запишите только целую часть получившегося числа.

        ✍ Решение:

          Ответ: 12


          Задание 10 (А.Н. Носкин):

          С помощью текстового редактора определите, сколько раз, не считая сносок, встречаются личные местоимения (я, ты, он, она, оно), без учета регистра в тексте А.П. Чехова «Воры» (файл 10-1.docx). В ответе укажите только число.

          ✍ Решение:

            Ответ: 141


            Задание 11:

            При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 6 символов и содержащий только символы из 7-буквенного набора А, В, Е, К, М, Н, О. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируются одинаковым и минимально возможным количеством бит. Кроме собственно пароля для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 10 байт.
            Определите объём памяти в байтах, необходимый для хранения сведений о 100 пользователях.

            ✍ Решение:

            • Мощность алфавита 7, соответственно имеем 23 > 7, т.е. 3 бита для кодирования 1 символа.
            • Для кодирования 6 символов пароля потребуется 6 * 3 = 18 бит. Так как для хранения паролей отведено одинаковое число байт, то для 18 бит потребуется 3 байта (8*3=24, 24>18).
            • Всего на одного пользователя, включая дополнительные сведения, потребуется: 3 + 10 = 13 байтов.
            • Для хранения сведений о 100 пользователях потребуется 13 * 100 = 1300 байтов.

            Ответ: 1300


            Задание 12 :

            Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

            1. заменить (v, w)
            2. нашлось (v)

            Дана программа для исполнителя Редактор:

            НАЧАЛО
              ПОКА нашлось (111)
                заменить (111, 2)
                заменить (222, 3)
                заменить (333, 1)
              КОНЕЦ ПОКА
            КОНЕЦ

            Какая строка получится в результате применения приведённой программы к строке вида 1…13…3 (2018 единиц и 2050 троек)?

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              
              s = 2018*'1'+2050*'3'
              while "111" in s:
                s = s.replace( "111", "2", 1 )
                s = s.replace( "222", "3", 1 )
                s = s.replace( "333", "1", 1 )
              print(s)
              С++:

              1
              
               

            Ответ: 332113


            Задание 13:

            На рисунке изображена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
            Сколько существует различных путей из города А в город М, не проходящих через город Е?

            ✍ Решение:

              задание 13 егэ решение

            Ответ: 30


            Задание 14 (М.В. Кузнецова):
            Значение арифметического выражения:

            95 + 325 – 20

            записали в системе счисления с основанием 3.
            Найдите сумму цифр в этой записи. Ответ запишите в десятичной системе.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              
              x = 9**5 + 3**25 - 20
              s = 0
              while x:
                 s+=x % 3 
                 x //= 3 
              print( s )
              С++:

              1
              
               

            Ответ: 18


            Задание 15:

            Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа А формула

            (ДЕЛ(x, A) ∧ ¬ДЕЛ(x, 36)) → ¬ДЕЛ(x, 12)

            тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              
              for A in range(1,500):
                 OK = 1
                 for x in range(1,1000):
                    OK *= ((x % A == 0) and (x % 36 != 0))<=(x % 12!= 0)
                 if OK:
                    print( A )
                    break
              С++:

              1
              
               

            Ответ: 9


            Задание 16:

            Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

            F(n) = n*n + 3*n + 9, при n ≤ 15
            F(n) = F(n-1) + n - 2, при n > 15, кратных 3
            F(n) = F(n-2) + n + 2, при n > 15, не кратных 3

            Определите количество натуральных значений n из отрезка [1; 1000], для которых все цифры значения F(n) чётные.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              
              def F( n ):
                 if n <= 15: 
                    return n*n + 3*n + 9
                 if n>15 and n%3==0:
                    return F(n-1) + n - 2
                 if n>15 and n%3!=0:
                    return F(n-2) + n + 2
              k=0
              for i in range(1,1001):
                 x = F(i)
                 flag=True
                 while x>0:
                    digit = x%10
                    if digit%2 != 0: flag = False
                    x//=10
                 if flag:  
                    k+=1
              print (k)
              С++:

              1
              
               

            Ответ: 33


            Задание 17:

            Рассматривается множество целых чисел, принадлежащих отрезку [1100;11000], которые делятся на 6 и не делятся на 7, 13, 17 и 23.
            Найдите количество таких чисел и максимальное из них. В ответе запишите два числа через пробел: сначала количество, затем максимальное число.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              
              a = [n for n in range(1100,11000+1) 
                   if (n%6==0 and n%7!=0 and n%13!=0 and n%17!=0 and n%23!=0)]
              print(len(a),max(a))
              С++:

              1
              
               

            Ответ: 1178 10992


            Задание 18:

            Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
            Исходные данные записаны в файле 18-2.xls в виде электронной таблице размером N×N, каждая ячейка которой соответствует клетке квадрата.
            Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

            ✍ Решение:

            Ответ: 1320 522


            Задание 19, 20, 21 (А.Н. Носкин):

            Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч один камень или увеличить количество камней в куче в два раза. Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 40. Победителем считается игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет 40 или больше камней.
            В начальный момент в первой куче было 9 камней, во второй куче – S камней, 1 ≤ S ≤ 30. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
            Ответьте на следующие вопросы:
            Вопрос 1 (задание 19). Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение S, при котором это возможно.
            Вопрос 2 (задание 20). Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Найденные значения запишите в ответе в порядке возрастания.
            Вопрос 3 (задание 21). Сколько существует значений S, при которых у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и при этом у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:
              Задание 19:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              
              def f(x,y,p):
                  if x+y>=40 and p==3:
                      return 1
                  elif x+y<40 and p==3:
                      return 0
                  else:
                      return f(x+1,y,p+1)+f(x*2,y,p+1)+f(x,y+1,p+1)+f(x,y*2,p+1)
              for i in range (1,1000):
                  if f(9,i,1):
                      print(i)
                      break

              Ответ:

              4

              Задание 20:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              
              def f(x,y,p):
                  if x+y>=40 and p==4:
                      return 1
                  elif x+y<40 and p==4:
                      return 0
                  elif x+y>40:
                      return 0
                  elif p%2==1:
                      return f(x+1,y,p+1)+f(x*2,y,p+1)+f(x,y+1,p+1)+f(x,y*2,p+1)
                  else:
                      return f(x+1,y,p+1)*f(x*2,y,p+1)*f(x,y+1,p+1)*f(x,y*2,p+1)
              for i in range (1,1000):
                  if f(9,i,1):
                      print(i)

              Ответ:

              4
              3
              4 уже было в 19, убираем
              14
              15 - лишнее
              

              Задание 21:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              
              def f(x,y,p):
                  if x+y>=40 and (p==3 or p==5):
                      return 1
                  elif x+y<40 and p==5:
                      return 0
                  elif x+y>40:
                      return 0
                  elif p%2==0:
                      return f(x+1,y,p+1)+f(x*2,y,p+1)+f(x,y+1,p+1)+f(x,y*2,p+1)
                  else:
                      return f(x+1,y,p+1)*f(x*2,y,p+1)*f(x,y+1,p+1)*f(x,y*2,p+1)
              for i in range (1,1000):
                  if f(9,i,1):
                      print(i)

              Ответ:

              14 уже было в 20
              15 уже было в 20
              значит, ответ 0
              
              С++:

              1
              
               

            Ответ:

            19: 4
            20: 3  14
            21: 0
            

            Задание 22:

            Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 15.

            PascalABC.net:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            
            var x, a, b: integer;
            begin
              readln(x);
              a:=0; b:=1;
              while x > 0 do begin
                a:= a + 1;
                b:= b*(x mod 10);
                x:= x div 10;
              end;
              writeln(a); write(b);
            end.
            Python:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            
            x = int(input())
            a = 0 
            b = 1
            while x > 0: 
              a = a + 1
              b = b*(x % 10)
              x = x // 10
            print(a)
            print(b)
            СИ:

            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            
            #include <stdio.h> 
            int main(void)
            {
             int a, b, x; 
             scanf(%d″, &x);
             a = 0; b = 1;
             while (x > 0) {
               a = a + 1;
               b = b*(x % 10);
               x = x / 10;
             }
             printf(%d\n%d″, a, b);
            }

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              
              for x_ in range(1,1001):  
                x = x_
                a = 0 
                b = 1
                while x > 0: 
                  a = a + 1
                  b = b*(x % 10)
                  x = x // 10  
                if a==3 and b==15:
                  print(x_)
                  break
              С++:

              1
              
               

            Ответ: 135


            Задание 23:

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

            1. Прибавить 1
            2. Прибавить 3
            3. Умножить на 4

            Программа для исполнителя Калькулятор – это последовательность команд.
            Сколько существует программ, для которых при исходном числе 1 результатом является число 18?

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              
               
              С++:

              1
              
               

            Ответ: 572


            Задание 24:

            Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины.
            Определите количество строк, в которых буква K встречается чаще, чем буква U.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              
              f= open("24-s1.txt")
              k = 0 # счетчик строк 
              while True: # бесконечный цикл
                  s = f.readline() # считываем очередную строку
                  if not s: break # если строка пустая (т.е. достигнут конец файла), выходим
                  if s.count("K") > s.count("U"):
                      k +=1
              print(k)
              С++:

              1
              
               

            Ответ: 470


            Задание 25:

            Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [251811; 251826], числа, имеющие ровно 4 различных делителя. В ответе для каждого найденного числа запишите два его наибольших делителя в порядке возрастания.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              
              for n in range(251811, 251826+1):
                    divs = [] # чистим список делителей
                    for d in range(1,n+1): #
                      if n % d == 0:
                        divs = divs + [d] # добавляем делитель в список
                        if len(divs) > 4: break
                    if len(divs) == 4:
                      print(*divs)

              ИЛИ:

              1
              2
              3
              4
              
              for n in range(251811, 251826+1):
                divs = [d for d in range(1, n+1) if n % d == 0] 
                if len(divs) == 4:
                  print( *divs )
              С++:

              1
              
               

            Ответ:

            	8123 251813
            50363 251815
            83939 251817
            601 251819
            14813 251821

            Задание 26 (Е. Джобс):

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

            Входные данные. В первой строке входного файла 26-j3.txt находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 1000000) и N – количество пользователей (натуральное число, не превышающее 10000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.
            Запишите в ответе два числа: сначала число сохраненных файлов, затем размер наименьшего сохраненного файла.
            Пример входного файла:

            100 4 
            70
            10
            25
            3

            При таких исходных данных можно сохранить три файла – 70, 25, 3. Поэтому ответ должен содержать два числа – 3 и 3.

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              
              f = open('26-j3.txt')
              data = f.readlines()
              s = data[0].split() 
              s = int(s[0]) #  
              del(data[0]) # удаляем самую первую строку, она уже не нужна
               
              for i in range (0, len(data)): # переводим в целые числа
                  data[i] = int(data[i])
              minSize = 10**9
              count = 0
              data.sort(reverse = True)
              for x in data:
                  if s >= x:
                      s -= x
                      minSize = x # минимальный элемент и будет последним удобвлетворяющим условию
                      count += 1
               
              print( count, minSize )
              С++:

              1
              
               

            Ответ: 1054 732


            Задание 27:

            Имеется набор данных, состоящий из троек положительных целых чисел. Необходимо выбрать из каждой тройки два числа так, чтобы сумма всех выбранных чисел не делилась на 5 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.
            Входные данные. Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество троек N (1 ≤ N ≤ 100000). Каждая из следующих N строк содержит три натуральных числа, не превышающих 10 000.
            Пример входного файла:

            6
            8 3 4
            4 8 12
            9 5 6
            2 8 3
            12 3 5
            1 4 11

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

            ✍ Решение:

              Программирование:

              PascalABC.net:

              1
              
               
              Python:

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              19
              20
              21
              22
              
              f = open ('27-29a.txt')
              n=int(f.readline()) # количество
              data=f.readlines()
              summa=0
              minim=10001 # для минимальной разницы
              for i in range(0, n):
                  s = data[i].split()
                  a=int(s[0])
                  b=int(s[1])
                  c=int(s[2])
               
                  if a > b: (a,b)=(b,a)
                  if b > c: (b,c)=(c,b)
                  if a > b: (a,b)=(b,a) 
                     # a,b,c отсортированы по возрастанию
                  summa += c+b 
                  if abs(a-b) % 5 > 0: minim = min(abs(a-b),minim)
                  if abs(a-c) % 5 > 0: minim = min(abs(a-c),minim)
              if summa % 5 != 0:
                  print("s=",summa)
              else:
                  print(summa - minim)
              С++:

              1
              
               

            Ответ: 25034 76468978

            Задание 26 ЕГЭ информатика по теме «Обработка целочисленной информации с использованием сортировки»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 26 задания. Объясняется тема о программной обработке целочисленной информации с использованием алгоритмов сортировки.

            Дальше — больше… Задание 26 ЕГЭ информатика по теме «Обработка целочисленной информации с использованием сортировки»

            Задание 24 ЕГЭ информатика по теме «Программная обработка символьной информации»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 24 задания. Объясняется тема о программной обработке символьной информации.

            Дальше — больше… Задание 24 ЕГЭ информатика по теме «Программная обработка символьной информации»

            Задание 21 ЕГЭ информатика по теме «Дерево игры для выигрышной стратегии»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 21 задания. Объясняется тема о поиске выигрышной стратегии и построения дерева игры.

            Дальше — больше… Задание 21 ЕГЭ информатика по теме «Дерево игры для выигрышной стратегии»

            Задание 20 ЕГЭ информатика по теме «Поиск выигрышной стратегии»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 20 задания. Объясняется тема о поиске выигрышной стратегии.

            Дальше — больше… Задание 20 ЕГЭ информатика по теме «Поиск выигрышной стратегии»

            Задание 18 ЕГЭ информатика по теме «Обработка числовой информации в электронных таблицах»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 18 задания. Объясняется тема об обработке числовой информации в электронных таблицах.

            Дальше — больше… Задание 18 ЕГЭ информатика по теме «Обработка числовой информации в электронных таблицах»

            Задание 17 ЕГЭ информатика по теме «Обработка целочисленной информации»

            На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 17 задания. Объясняется тема о программной обработке числовой информации.

            Дальше — больше… Задание 17 ЕГЭ информатика по теме «Обработка целочисленной информации»

            Вставить формулу как
            Блок
            Строка
            Дополнительные настройки
            Цвет формулы
            Цвет текста
            #333333
            Используйте LaTeX для набора формулы
            Предпросмотр
            \({}\)
            Формула не набрана
            Вставить