№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Вариант № 4871421

1.

Сколько существует натуральных чисел x, для которых выполнено неравенство 110010002 ≤ x ≤ CF16? В ответе укажите только количество чисел, сами числа писать не нужно.

2.

Логическая функция F задаётся выражением ((xy) ≡ (yz)) ∧ (yw).

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

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

 

Переменная 1Переменная 2Переменная 3Переменная 4Функция
????????????F
001
0001
01

 

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

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

 

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

 

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

3.

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

 

 

 

 

П1П2П3П4П5П6П7
П17
П27834
П38116
П4115
П53659
П64
П79

 

 

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

4.

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

Примечание. Братьев (сестёр) считать родными, если у них есть хотя бы один общий родитель.

 

 

Таблица 1
IDФамилия_И. О.ПолГод рождения
64Келдыш С.М.М1989
66Келдыш О.Н.Ж1964
67Келдыш М.И.М1962
68Дейнеко Е.В.Ж1974
69Дейнеко Н.А.Ж1994
70Сиротенко В.Н.М1966
72Сиротенко Д.В.Ж1995
75Сиротенко Н.П.М1937
77Мелконян А.А.М1987
81Мелконян И.Н.Ж1963
82Лурье А.В.Ж1989
86Хитрово Н.И.М1940
88Хитрово Т.Н.Ж1968
89Гурвич З.И.Ж1940
............

 

Таблица 2
ID_РодителяID_Ребенка
6664
6764
8666
8169
7570
8970
7072
8872
8177
7581
8981
7082
8882
8688
......

5.

По каналу связи передаются сообщения, содержащие только семь букв: А, Б, Г, И, М, Р, Я. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: А — 010, Б — 011, Г — 100. Какое наименьшее количество двоичных знаков потребуется для кодирования слова МАГИЯ?

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

6.

На экране есть два окна, в каждом из которых записано по числу. Исполнитель СУММАТОР имеет только две команды, которым присвоены номера:

1. Запиши сумму чисел в первое окно

2. Запиши сумму чисел во второе окно

Выполняя команду номер 1, СУММАТОР складывает числа в двух окнах и заменяет этой суммой число в первом окне, а выполняя команду номер 2, заменяет этой суммой число во втором окне. Напишите программу, содержащую не более 5 команд, которая из пары чисел 1 и 2 получает пару чисел 13 и 4. Укажите лишь номера команд.

Например, программа 21211 – это программа:

Запиши сумму чисел во второе окно

Запиши сумму чисел в первое окно

Запиши сумму чисел во второе окно

Запиши сумму чисел в первое окно

Запиши сумму чисел в первое окно

которая преобразует пару чисел 1 и 0 в пару чисел 8 и 3.

7.

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

 

 Вклад, р. 4 %5 % Сумма начислений за два периода 
Осин2100000 2184000  2293200 193200
Пнев20000020800021840018400
Чуйкин5000052000546004600
Шаталов240000024960002620800220800
 Общая сумма 475000049400005187000437000

 

Определите, кто из вкладчиков за истекшее с момента открытия вклада время получил средний ежемесячный доход от вклада более 9 000 рублей.

8.

Определите, что будет напечатано в результате работы следующего фрагмента программы:

 

 

БейсикPython

DIM K, S AS INTEGER

S = 0

K = 0

WHILE K < 12

    S = S + 2*K

    K = K + 3

WEND

PRINT S

s = 0

k = 0

while k < 12:

    s += 2*k

    k += 3

print(s)

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

var k, s: integer;

begin

       s:=0;

       k:=0;

      while k < 12 do begin

            s:=s+2*k;

            k:=k+3;

       end;

      write(s);

end.

алг

нач

    цел k, s

    s := 0

    k := 0

    нц пока k < 12

        s := s + 2*k

        k := k + 3

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 0, k = 0;

    while (k < 12) {

        s = s + 2*k;

        k = k + 3;

    }

    cout << s << endl;

    return 0;

}

 

9.

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

10.

Двое играют в «крестики-нолики» на поле 4 на 4 клетки. Какое количество информации (в битах) получил второй игрок, узнав ход первого игрока?

11.

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

 

 

БейсикPython

SUB F(n)

    IF n > 0 THEN

         F(n \ 3)

         F(n − 3)

         PRINT N

    END IF

END SUB

 

def F(n):

    if n > 0:

        F(n // 3)

        F(n − 3)

        print(n)

 

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

procedure F(n: integer);

begin

    if n > 0 then begin

        F(n div 3);

        F(n − 3);

        write(n)

    end

end;

 

алг F(цел n)

нач

    если n > 0 то

        F(div(n,3))

        F(n − 3)

        вывод n

    все

кон

 

С++

void F (int n)

{

     if (n > 0) {

        F (n / 3);

        F (n − 3);

        std::cout << n;

    }

}

 

 

 

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

12.

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

Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

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

Для узла с IP-адресом 93.138.161.94 адрес сети равен 93.138.160.0. Какое наименьшее количество нулей может быть в двоичной записи маски?

13.

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 9 символов. Из соображений информационной безопасности каждый пароль должен содержать хотя бы 1 десятичную цифру, как прописные, так и строчные латинские буквы, а также не менее 1 символа из 6-символьного набора: «&», «#», «$», «*», «!», «@». В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт; это число одно и то же для всех пользователей.

Для хранения сведений о 20 пользователях потребовалось 500 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число – количество байт.

Примечание. В латинском алфавите 26 букв.

14.

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости:

вверх вниз влево вправо

При выполнении этих команд РОБОТ перемещается на одну клетку соответственно: вверх, вниз, влево, вправо.

Четыре команды проверяют истинность условия отсутствия стены у той клетки, где находится РОБОТ:

сверху
свободно
снизу
свободно
слева
свободно
справа
свободно

Цикл

ПОКА < условие> команда

выполняется, пока условие истинно, иначе происходит переход на следующую строку.

Сколько клеток лабиринта соответствуют требованию, что, выполнив предложенную программу, РОБОТ остановится в той же клетке, с которой он начал движение?

 

НАЧАЛО

ПОКА <справа свободно> вправо

ПОКА <снизу свободно> вниз

ПОКА <слева свободно> влево

ПОКА <сверху свободно> вверх

КОНЕЦ

15.

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

 

16.

Укажите, сколько всего раз встречается цифра 2 в записи чисел 10, 11, 12, …, 17 в системе счисления с основанием 5.

17.

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

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

 

ЗапросНайдено страниц
(в сотнях тысяч)
Поле90
Рожь71
Напряжённость62
Рожь | Поле | Напряжённость140
Рожь & Поле 53
Рожь & Напряжённость 0

 

Какое количество страниц (в сотнях тысяч) будет найдено по запросу Поле & Напряжённость?

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

18.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n.

Так, например, 14&5 = 11102&01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула

 

 

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

19.

Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A, в представленном фрагменте программы обрабатываются элементы массива с индексами от 1 до 10.

 

 

БейсикPython

s = 0

n = 10

FOR i = 2 TO n

    s=s+A(i)*A(i)-A(i-1)*A(i-1)

NEXT i

s=0

n=10

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

    s=s + A[i]*A[i]-A[i-1]*A[i-1]

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

s:=0;

n:=10;

for i:= 2 to n do begin

    s:=s+A[i]*A[i]-A[i-1]*A[i-1];

end;

s:=0

n:=10

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

    s:=s + A[i]*A[i]-A[i-1]*A[i-1];

кц

Си++

s = 0;

n = 10;

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

    s=s + A[i]*A[i]-A[i-1]*A[i-1];

}

 

 

В начале выполнения этого фрагмента в массиве находились числа 1, 12, 23, 34, 45, 56, 67, 78, 89, 90, т. е. A[1]=1, A[2]=12 и т.д. Чему будет равно значение переменной s после выполнения данного фрагмента?

20.

Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа — это числа 11 и 66. Какое наибольшее число может быть напечатано третьим?

 

БейсикPython

DIM X, Y, Z, R, A, B AS INTEGER

INPUT X, Y

IF Y > X THEN

    Z = X: X = Y: Y = Z

END IF

A = X: B = Y

WHILE B > 0

    R = A MOD B

    A = B

    B = R

WEND

PRINT A

PRINT X

PRINT Y

x, y = int(input())

if y > x:

    z = x

    x = y

    y = z

a = x

b = y

while b > 0:

    r = a % b

    a = b

    b = r

print(a)

print(x)

print(y)

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

var x, y, z: integer;

var r, a, b: integer;

begin

    readln(x, y);

    if y >x then begin

        z := x; x := y; y := z;

    end;

    a:= x; b:= y;

    while b>0 do begin

        r := a mod b;

        a := b;

        b := r;

    end;

    writeln(a);

    writeln(x);

    write(y);

end.

алг

нач

    цел x, y, z, r, a, b

    ввод x, y

    если y > x

        то

            z := x; x := y; y := z

    все

    a := x; b := y

    нц пока b>0

        r := mod (a, b)

         a := b

         b := r

    кц

    вывод a, нс, x, нс, y

кон

 

Си++

 

#include <iostream>

using namespace std;

int main()

{

    int x, y, z, r, a, b;

    cin » x » y;

    if (y > x){

        z = x; x = y; y = z;

    }

    a = x; b = y;

    while (b>0){

        r = a%b;

        a = b;

b = r;

}

cout « a « endl « x « endl « y « endl;

}

 

21.

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

 

 

БейсикPython

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

A = -10: 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-9)*(x*x-9)+9;

END FUNCTION

def F(x):

    return 2*(x*x-9)*(x*x-9)+9

a=-10; 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:integer):integer;

    begin

        F := 2*(x*x-9)*(x*x-9)+9;

    end;

BEGIN

    a := -10; 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 := -10; 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-9)*(x*x-9)+9

кон

Си++

#include <iostream>

using namespace std;

int F(int x)

{

    return 2*(x*x-9)*(x*x-9)+9;

}

int main()

{

    int a, b, t, M, R;

    a = -10; b = 20;

    M = a; R = F(a);

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

        if (F(t)<=R) {

            M = t; R = F(t);

        }

    }

    cout << M*R << endl;

    return 0;

}

 

22.

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

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

1) Прибавить 1;

2) Прибавить 2;

3) Прибавить 4.

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

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

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

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

23.

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

(¬ (x1 ≡ x2) \/ ¬ (y1 ≡ y2) ) = 1

(¬ (x2 ≡ x3) \/ ¬ (y2 ≡ y3) ) = 1

(¬ (x3 ≡ x4) \/ ¬ (y3 ≡ y4) ) = 1

(¬ (x4 ≡ x5) \/ ¬ (y4 ≡ y5) ) = 1

x5 ≡ y5 = 1

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

24.

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S <= A

    K = K + 1

    P = P + K

    S = S + P

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s <= a:

     k = k + 1

     p = p + k

     s = s + p

print(k)

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

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s <= a do begin

      k := k+1;

      p := k+p;

      s := p+s;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s <= a

     k := k+1

     p := p+k

     s := s+p

   кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main()

{

   int a, s, p, k;

   cin >> a;

   s = 0;

   p = 0;

   k = 1;

   while (s <= a) {

       k = k+1;

       p = p+k;

       s = s+p;

   }

   cout « k « endl;

   return 0;

}

 

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

1. Напишите, что выведет эта программа при вводе числа 17.

2. Перечислите все значения A, при вводе которых программа выведет ответ 3.

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

25.

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

Например, в массиве из шести элементов, равных соответственно 2, 3, 1, 5, 6, 4, произведение всех элементов чётно, значит, ответом будет максимальный чётный элемент, то есть 6.

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

 

 

БейсикPython

CONST N=2016

DIM A(N) AS INTEGER

DIM I, M, K AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

# допускается также использо-

# вание целочисленных

# переменных m, k

a = []

N = 2016

for i in range(0, N):

a.append(int(input()))

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

алг

нач

    цел N=2016

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

    цел i, m, k

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

        ввод a[i]

    кц

    …

кон

const

    N=2016;

var

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

    i, m, k: integer;

begin

    for i:=1 to N do

        readln(a[i]);

    …

end.

Си++

#include <iostream>

using namespace std;

#define N 2016

int main(){

    int a[N];

    int i, m, k;

    for (i=0; i        cin >> a[i];

    …

    return 0;

}

 

 

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

26.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 10 камней, а в другой 7 камней; такую позицию в игре будем обозначать (10, 7). Тогда за один ход можно получить любую из четырёх позиций: (11, 7), (20, 7), (10, 8), (10, 14). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

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

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Например, при начальных позициях (6, 36), (7, 35), (9, 34) выигрышная стратегия есть у Пети. Чтобы выиграть, ему достаточно удвоить количество камней во второй куче.

 

      Задание 1. Для каждой из начальных позиций (6, 35), (8, 34) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт

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

 

      Задание 2. Для каждой из начальных позиций (6, 34), (7, 34), (8, 33) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии.

 

      Задание 3. Для начальной позиции (7, 33) укажите, кто из игроков имеет выигрышную стратегию. Опишите выигрышную стратегию; объясните, почему эта стратегия ведёт к выигрышу, и укажите, какое наибольшее количество ходов может потребоваться победителю для выигрыша при этой стратегии. Постройте дерево всех партий, возможных при указанной Вами выигрышной стратегии. Представьте дерево в виде рисунка или таблицы.

27.

По ка­на­лу связи пе­ре­да­ет­ся по­сле­до­ва­тель­ность по­ло­жи­тель­ных целых чисел , … все числа не пре­вы­ша­ют 1000, их ко­ли­че­ство за­ра­нее не­из­вест­но. Каж­дое число пе­ре­да­ет­ся в виде от­дель­ной тек­сто­вой стро­ки, со­дер­жа­щей де­ся­тич­ную за­пись числа. При­зна­ком конца пе­ре­да­ва­е­мой по­сле­до­ва­тель­но­сти яв­ля­ет­ся число 0. Уча­сток по­сле­до­ва­тель­но­сти от эле­мен­та до эле­мен­та на­зы­ва­ет­ся подъ­емом, если на этом участ­ке каж­дое сле­ду­ю­щее число боль­ше преды­ду­ще­го. Вы­со­той подъ­ема на­зы­ва­ет­ся раз­ность . На­пи­ши­те эф­фек­тив­ную про­грам­му, ко­то­рая вы­чис­ля­ет наи­боль­шую вы­со­ту среди всех подъ­емов по­сле­до­ва­тель­но­сти. Если в по­сле­до­ва­тель­но­сти нет ни од­но­го подъ­ема, про­грам­ма вы­да­ет 0. Про­грам­ма долж­на на­пе­ча­тать отчет по сле­ду­ю­щей форме:

По­лу­че­но ... чисел Наи­боль­шая вы­со­та подъ­ема: …

 

Вам пред­ла­га­ют­ся два за­да­ния, свя­зан­ные с этой за­да­чей: за­да­ние А и за­да­ние Б. Вы мо­же­те ре­шать оба за­да­ния А и Б или одно из них по сво­е­му вы­бо­ру.

Ито­го­вая оцен­ка вы­став­ля­ет­ся как мак­си­маль­ная из оце­нок за за­да­ния А и Б. Если ре­ше­ние од­но­го из за­да­ний не пред­став­ле­но, то счи­та­ет­ся, что оцен­ка за это за­да­ние со­став­ля­ет 0 бал­лов.

За­да­ние Б яв­ля­ет­ся услож­нен­ным ва­ри­ан­том за­да­ния А, оно со­дер­жит до­пол­ни­тель­ные тре­бо­ва­ния к про­грам­ме. Перед про­грам­мой ука­жи­те вер­сию языка про­грам­ми­ро­ва­ния.

 

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

Обя­за­тель­но ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем за­да­ния А.

Мак­си­маль­ная оцен­ка за вы­пол­не­ние за­да­ния А – 2 балла.

Б. На­пи­ши­те про­грам­му для ре­ше­ния по­став­лен­ной за­да­чи, ко­то­рая будет эф­фек­тив­на как по вре­ме­ни, так и по па­мя­ти (или хотя бы по одной из этих ха­рак­те­ри­стик).

Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по вре­ме­ни, если время ра­бо­ты про­грам­мы про­пор­ци­о­наль­но ко­ли­че­ству эле­мен­тов по­сле­до­ва­тель­но­сти N, т.е. при уве­ли­че­нии N в k раз время ра­бо­ты про­грам­мы долж­но уве­ли­чи­вать­ся не более чем в k раз. Обя­за­тель­но ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем за­да­ния Б.

 

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

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

144

17

27

3

7

9

11

10

0

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

По­лу­че­но 8 чисел

Наи­боль­шая вы­со­та подъ­ема: 10