В начало страницы

Вариант «ЕГЭ по информатике 13.06.2019. Основная волна, Центр. Вариант Имаева-Зубовой — «Котолис»» (ОСН-2019)

Список тем

1, Д1, 2, 3, 4, 5, 6, 7, Д7, 8, 11, 12, Д12, 13, 14, 15, 16, Д17, Д17, Д19, Д21, 22, 23, Д23, Д23, Д24 C1, Д25 C2, Д26 C3, Д27 C4

Задания

Задание 1 (тема 1, №18782)

Текст задания

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

 

 

П1П2П3П4П5П6П7
П110
П212
П31095
П4105
П59584
П6101258
П74

 

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

Задание Д1 (тема Д1, №18780)

Текст задания

Определите количество натуральных чисел, удовлетворяющих неравенству 8B16 < x < 8F16.

Ответ запишите в десятичной системе счисления.

Задание 2 (тема 2, №18781)

Текст задания

Логическая функция F задаётся выражением (¬x ∨ ¬y) ∧ ¬(xz) ∧ w.

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

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

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
1001
10011
101

 

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

Пример. Пусть задано выражение xy, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

 

Переменная 1Переменная 1Функция
??????F
010

 

Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

Задание 3 (тема 3, №18783)

Текст задания

Даны фрагменты двух таблиц из базы данных. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. На основании имеющихся данных определите ID женщины, которая впервые стала матерью в самом раннем возрасте, и запишите в ответе её идентификатор (ID). При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.

 

Таблица 1
IDФамилия И.О.ПолГод рождения
240Черных А. В.М1938
261Черных Д. И.М1997
295Черных Е. П.Ж1939
325Черных И. А.М1972
356Черных Н. Н.Ж1972
367Гунько А. Б.М1979
427Малых Е. А.М2001
517Краско М. А.Ж1966
625Соболь О. К.Ж1988
630Краско В. К.М1993
743Гунько Б. В.М1951
854Колосова А. Е.Ж1955
943Гунько А. Н.Ж1975
962Малых Н. Н.М1946

Таблица 2
ID РодителяID Ребенка
240325
295325
325261
356261
367427
240517
295517
517625
517630
743367
854367
943427
962356
962943

Задание 4 (тема 4, №18784)

Текст задания

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

 

БукваКодовое слово
А00
Б111
В010
Г1100
Д1010
БукваКодовое слово
Е011
И1011
К1000
Л
М1001

 

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

 

Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.

Задание 5 (тема 5, №18785)

Текст задания

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

1. Строится двоичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если число чётное, то к двоичной записи числа слева дописывается 1, а справа 0. Например, если для исходного числа 100 результатом будет являться число 11000;

б) если число нечётное, то к двоичной записи числа слева дописывается 11 и справа дописывается 11.

Полученная таким образом запись является двоичной записью искомого числа R.

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

Задание 6 (тема 6, №18787)

Текст задания

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

 

 

БейсикPython

DIM S, N AS INTEGER

S = 0

N = 1

WHILE S < 100

S = S + 20

N = N * 3

WEND

PRINT N

s = 0

n = 1

while s < 100:

    s = s + 20

    n = n * 3

print(n)

ПаскальАлгоритмический язык

var s, n: integer;

begin

    s := 0;

    n := 1;

    while s < 100 do

    begin

        s := s + 20;

        n := n * 3;

    end;

    writeln(n)

end.

алг

нач

    цел s, n

    s := 0

    n := 1

    нц пока s < 100

        s := s + 20

        n := n * 3

    кц

    вывод n

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int s = 0, n = 1;

    while (s < 100) {

        s = s + 20;

        n = n * 3;

    }

    cout << n;

    return 0;

}

 

 

Задание 7 (тема 7, №18788)

Текст задания

Автоматическая фотокамера производит растровые изображения размером 480 на 640 пикселей. При этом объём файла с изображением не может превышать 40 Кбайт, упаковка данных не производится. Какое максимальное количество цветов можно использовать в палитре?

Задание Д7 (тема Д7, №18786)

Текст задания

Дан фрагмент электронной таблицы. Из ячейки C2 в ячейку D3 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке D3?

 

ABCDE
14030040044
2306=A$1+$B2203
3208152
4104001004015

 

Примечание: знак $ обозначает абсолютную адресацию.

Задание 8 (тема 8, №18789)

Текст задания

Все четырёхбуквенные слова, составленные из букв С, Е, Н, О, записаны в алфавитном порядке и пронумерованы, начиная с 1. Начало списка выглядит так:

1. ЕЕЕЕ

2. ЕЕЕН

3. ЕЕЕО

4. ЕЕЕС

5. ЕЕНЕ

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

Задание 11 (тема 11, №18792)

Текст задания

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов. Для построения идентификатора используют 15 букв из определённого набора. В базе данных для хранения каждого пароля отведено одинаковое минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым минимально возможным количеством бит. Кроме пароля для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено 12 байт на каждого пользователя. Сколько байт нужно выделить для хранения сведений о 400 пользователях?

Задание 12 (тема 12, №18793)

Текст задания

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

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды

заменить (111, 27)

преобразует строку 05111150 в строку 0527150.

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

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

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

 

Цикл

ПОКА условие

    последовательность команд

КОНЕЦ ПОКА

выполняется, пока условие истинно.

 

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 троек?

 

НАЧАЛО

    ПОКА нашлось (999) ИЛИ нашлось (333)

        ЕСЛИ нашлось (333)

            ТО заменить (333, 9)

        ИНАЧЕ

            заменить (999, 3)

        КОНЕЦ ЕСЛИ

    КОНЕЦ ПОКА

КОНЕЦ

Задание Д12 (тема Д12, №18791)

Текст задания

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места — нули. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 113.191.169.34 адрес сети равен 113.191.160.0. Каково наименьшее возможное количество единиц в разрядах маски?

Задание 13 (тема 13, №18794)

Текст задания

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

Сколько существует различных путей из города А в город Т, проходящих через город Б?

 

Задание 14 (тема 14, №18795)

Текст задания

Значение выражения 536 + 524 − 25? записали в системе счисления с основанием 5.

Сколько цифр 4 содержится в этой записи?

Задание 15 (тема 15, №18797)

Текст задания

Для какого наибольшего целого неотрицательного числа A выражение

 

(x > A) ∨ (y > x) ∨ (2y + x < 110)

 

тождественно истинно, то есть принимает значение 1 при любых целых неотрицательных x и y?

Задание 16 (тема 16, №18790)

Текст задания

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

 

БейсикPython

SUB F(n)

    PRINT N

    IF n >= 3 THEN

         F(n − 1)

         F(n − 1)

    END IF

END SUB

 

def F(n):

    print(n)

    if n >= 3:

         F(n − 1)

         F(n − 1)

 

ПаскальАлгоритмический язык

procedure F(n: integer);

begin

    write(n);

    if n >= 3 then begin

        F(n − 1);

        F(n − 1);

    end

end;

 

алг F(цел n)

нач

    вывод n

    если n >= 3 то

        F(n − 1)

        F(n − 1)

    все

кон

 

С++

void F (int n)

{

    std::cout << n;

     if (n >= 3) {

        F (n − 1);

        F (n − 1);

    }

}

 

 

 

Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(4). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.

Задание Д17.1 (тема Д17, №18719)

Варианты

Текст задания

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

ЗапросНайдено страниц
(в тысячах)
Суфле450
Корзина200
Эклер490
Суфле & Корзина70
Суфле & Эклер160
Корзина & Эклер0

 

Какое количество страниц (в тысячах) будет найдено по запросу Суфле | Корзина | Эклер?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

Задание Д17.2 (тема Д17, №18796)

Варианты

Текст задания

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

ЗапросНайдено страниц
(в тысячах)
Суфле450
Корзина200
Эклер490
Суфле & Корзина70
Суфле & Эклер160
Корзина & Эклер0

 

Какое количество страниц (в тысячах) будет найдено по запросу Суфле | Корзина | Эклер?

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

Задание Д19 (тема Д19, №18798)

Текст задания

Представленный ниже на пяти языках программирования фрагмент программы обрабатывает элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 3, 5, 6, 10, 4, 8, 6, 12, 9 (т. е. A[0] = 2, A[1] = 3, …, A[9] = 9). Определите значение переменной s после выполнения фрагмента.

 

 

БейсикPython

n = 6

s = 0

FOR i = 0 TO 9

    IF A(i) > A(n) THEN

        s = s + (A(i) MOD A(n))

        t = A(i)

        A(i) = A(n)

        A(n) = t

    END IF

NEXT i

 

n = 6

s = 0

for i in range(0,10):

    if A[i] > A[n]:

        s += A[i] % A[n]

        t = A[i]

        A[i] = A[n]

        A[n] = t

 

 

 

ПаскальАлгоритмический язык

n := 6;

s := 0;

for i:=0 to 9 do begin

    if A[i] > A[n] then begin

        s := s + (A[i] mod A[n]);

        t := A[i];

        A[i] := A[n];

        A[n] := t;

    end

end;

 

n := 6

s := 0

нц для i от 0 до 9

    если A[i] > A[n] то

        s := s + mod(A[i], A[n])

        t := A[i]

        A[i] := A[n]

        A[n] := t

    все

кц

С++

n = 6;

s = 0;

for (i = 0; i <= 9; ++i) {

    if (A[i] > A[n]) {

        s += A[i] % A[n];

        t = A[i];

        A[i] = A[n];

        A[n] = t;

    }

}

 

Задание Д21 (тема Д21, №18800)

Текст задания

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

 

БейсикPython

DIM A, B, T, M, R AS LONG

A = -20: B = 20

M = A: R = F(A)

FOR T = A TO B

    IF F(T) < R THEN

         M = T

         R = F(T)

    END IF

NEXT t

PRINT M+R

 

FUNCTION F (x)

     F = 2*(x*x-1)*(x*x-1)+5

END FUNCTION

def f(x):

     return 2*(x*x-1)*(x*x-1)+5

a = -20; b=20

M=a; R=F(a)

for t in range(a,b+1):

    if (F(t) < R):

         M=t; R=F(t)

print (M+R)

ПаскальАлгоритмический язык

var a, b, t, M, R :longint;

function F(x: longint) : longint;

    begin

         F:= 2*(x*x-1)*(x*x-1)+5;

    end;

begin

     a:=-20; b:=20;

     M:=a; R:=F(a);

     for t:= a to b do begin

         if (F(t) < R) then begin

             M:=t;

             R:=F(t)

      end

    end;

     write(M+R)

end.

алг

нач

    цел a, b, t, M, R

    a:=-20; b:=20

    M:=a; R:=F(a)

    нц для t от a до b

         если F(t) < R то

            то

                 M:=t; R:=F(t)

        все

    кц

    вывод M+R

кон

алг цел F(цел x)

нач

    знач :=2*(x*x-1)*(x*x-1)+5

кон

Си++

#include <iostream>

using namespace std;

 

long F(long x) {

     return 2*(x*x-1)*(x*x-1)+5;

}

 

int main() {

     long a = -20, b = 20, M = a, R = F(a);

     for (int t = a; t < b; ++t) {

         if (F(t)< R) {

            M = t; R = F(t);

        }

    }

     cout << M + R;

    return 0;

}

 

Задание 22 (тема 22, №18799)

Текст задания

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

 

 

БейсикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

    IF X MOD 2 <> 0 THEN

        L = L + 1

    END IF

    X = X \ 2

WEND

PRINT L

PRINT M

 

x = int(input())

L = 0

M = 0

while x > 0:

    M = M + 1

    if x % 2 != 0:

        L = L + 1

    x = x // 2

print(L)

print(M)

 

ПаскальАлгоритмический язык

var x, L, M: integer;;

begin

    readln(x);

    L := 0;

    M := 0;

    while x > 0 do

    begin

        M := M + 1;

        if x mod 2 <> 0

            then L := L + 1;

        x := x div 2;

    end;

    writeln(L);

    writeln(M);

end.

 

алг

нач

    цел x, L, M

    ввод x

    L := 0

    M := 0

    нц пока x > 0

        M := M + 1

        если mod(x,2) <> 0 то

            L := L + 1

        все

        x := div(x,2)

    кц

    вывод L

    вывод M

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0;

    M = 0;

    while (x > 0) {

        M = M + 1;

        if(x % 2 != 0){

            L = L + 1;

        }

        x = x / 2;

    }

    cout << L << endl << M << endl;

    return 0;

}

 

 

Задание 23 (тема 23, №18801)

Текст задания

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

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

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

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

3. Прибавить 2

Первая команда увеличивает число на экране на 1, вторая умножает его на 3, третье увеличивает его на 2.

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

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

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 10, 30.

Задание Д23.1 (тема Д23, №18725)

Варианты

Текст задания

Сколько существует различных наборов значений логических переменных x1, x2,…, x10, которые удовлетворяют всем перечисленным ниже условиям?

 

¬(x1x2) ≡ (x3x4) = 1

¬(x3x4) ≡ (x5x6) = 1

¬(x5x6) ≡ (x7x8) = 1

¬(x7x8) ≡ (x9x10) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ..., x10, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

Задание Д23.2 (тема Д23, №18802)

Варианты

Текст задания

Сколько существует различных наборов значений логических переменных x1, x2,…, x10, которые удовлетворяют всем перечисленным ниже условиям?

 

¬(x1x2) ≡ (x3x4) = 1

¬(x3x4) ≡ (x5x6) = 1

¬(x5x6) ≡ (x7x8) = 1

¬(x7x8) ≡ (x9x10) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ..., x10, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

Задание Д24 C1 (тема Д24 C1, №18803)

Текст задания

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество всех чисел исходной последовательности, которые делятся без остатка на 7, и сумму таких чисел. Если в последовательности нет чисел, которые делятся без остатка на 7, то на экран нужно вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Напоминание: 0 делится на любое натуральное число.

 

 

БейсикPython

CONST n=4

count = 0

sum = 0

FOR I = 1 TO n

    INPUT x

    IF x mod 7 = 0 THEN

        count = count + 1

        sum = x

    END IF

NEXT I

IF sum > 0 THEN

    PRINT count

    PRINT sum

ELSE

    PRINT "NO"

END IF

n = 4

count = 0

sum = 0

for i in range(1, n+1):

    x = int(input())

    if x % 7 == 0:

        count = count + 1

        sum = x

if sum > 0:

    print(count)

    print(sum)

else:

    print("NO")

ПаскальАлгоритмический язык

const n = 4;

var i, x, sum, count: integer;

begin

    count := 0;

    sum := 0;

    for i := 1 to n do begin

        read(x);

        if x mod 7 = 0 then

        begin

            count := count+1;

            sum := x;

        end

    end;

if sum > 0 then begin

    writeln(count);

    writeln(sum);

end

else

    writeln('NO')

end.

алг

нач

цел n = 4

    цел i, x, sum, count

    count := 0

    sum := 0

    нц для i от 1 до n

        ввод x

        если mod(x,7) = 0 то

            count := count + 1

            sum := x

        все

    кц

    если sum > 0 то

        вывод count

        вывод sum

    иначе вывод "NO"

кон

С++

#include <iostream>

#define n 4

using namespace std;

int main(){

    int i, x, sum, count;

    count = 0;

    sum = 0;

    for(i=1; i <= n; i++){

        cin >> x;

        if(x % 7 == 0){

            count = count + 1;

            sum = x;

        }

    }

    if(sum > 0)

    {

        cout << count << endl;

        cout << sum << endl;

    }

    else

        cout << "NO";

    return 0;

}

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности: 35 50 70 80.

2. Приведите пример последовательности, в которой есть хотя бы одно число, делящееся на без остатка 7, при вводе которой, несмотря на ошибки, программа печатает правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

 

Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

Задание Д25 C2 (тема Д25 C2, №18804)

Текст задания

Дан массив, содержащий 2019 положительных целых чисел, элементы массива могут принимать значения не превышающие 30 000. Необходимо найти наименьший кратный 4 элемент этого массива. После этого изменить элементы массива кратные 4 на найденное значение и вывести изменённый массив на экран.

Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 4 27 95 148 программа должна вывести числа 4 4 27 95 4 по одному числу в строке (все элементы кратные 4 были приравнены минимальному из них).

Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

 

 

БейсикPython

CONST N=2019

DIM A(1 TO N) AS LONG

DIM I, K, M AS LONG

FOR I = 1 TO N

    INPUT A(I)

NEXT I

END

# кроме уже указанных

# допускается использование

# целочисленных переменных

# k, m

a = []

n = 2019

for i in range(0, n):

    a.append(int(input()))

ПаскальАлгоритмический язык

const

    N=2019;

var

    a: array [1..N] of longint;

    i, k, m: longint;

begin

    for i:=1 to N do

        readln(a[i]);

    …

end.

алг

нач

    цел N=2019

    целтаб a[1:N]

    цел i, k, m

    нц для i от 1 до N

        ввод a[i]

    кц

    …

кон

С++

#include <iostream>

using namespace std;

const int N=2019;

    int main(){

    int a[N];

    int i, j, k;

    for (i=0; i<N; ++i)

        cin >> a[i];

    …

    return 0;

}

 

 

 

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.

Задание Д26 C3 (тема Д26 C3, №18805)

Текст задания

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или три камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 18 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 42.

Победителем считается игрок, сделавший последний ход, т. е. первым получивший кучу, в которой будет 42 или больше камней.

В начальный момент в куче было S камней; 1 меньше или равно S меньше или равно 41.

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

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

Задание 1.

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

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

Задание 2.

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

—Петя не может выиграть за один ход;

—Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Для каждого указанного значения S опишите выигрышную стратегию Пети.

Задание 3.

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

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

—у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Для указанного значения S опишите выигрышную стратегию Вани.

Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход; в узлах — количество камней в куче.

Дерево не должно содержать партии, невозможные при реализации выигрывающим игроком своей выигрышной стратегии. Например, полное дерево игры не является верным ответом на это задание.

Задание Д27 C4 (тема Д27 C4, №18806)

Текст задания

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом), такие что ai > aj при i < j ≤ N. Среди пар, удовлетворяющих этому условию, необходимо найти и вывести пару с максимальной суммой элементов, которая делится на 120. Если среди найденных пар максимальную сумму имеют несколько, то можно напечатать любую из них.

Если пар заданным условием нет, то программа должна вывести NO.

Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.

Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 килобайта и не увеличивается с ростом N.

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

Максимальная оценка за правильную программу, эффективную только по времени или только по памяти, — 3 балла.

Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, — 2 балла.

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

Перед текстом программы кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.

Описание входных и выходных данных.

В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10000.

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

7

1

119

2

118

3

237

123

Пример выходных данных для приведённого выше примера входных данных:

237 123

Из 7 чисел можно составить 14 пар. В данном случае условиям удовлетворяет пара: 237 и 123. Сумма 360 делится на 120, ai > aj, а i < j. У всех остальных пар как минимум одно из этих условий не выполняется.