Досрочный егэ информатика 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

    2 комментария для “Досрочный егэ информатика 2022 решение”

    1. В 9 номере ошибка. Руками легко проверить первую строку. Если Квадрат суммы мин и макс получился правильно, то сумма квадратов оставшихся чисел — нет! 18^2+24^2+28^2 = 1684.
      Для расчёта суммы квадратов я использовала формулу:
      =НАИБОЛЬШИЙ(A1:E1;2)^2+НАИБОЛЬШИЙ(A1:E1;3)^2+НАИБОЛЬШИЙ(A1:E1;4)^2.
      Можно и по другому.
      Ответ: 2640 строк.

    Обсуждение закрыто.