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

1.

Вы­чис­ли­те раз­ность X-Y дво­ич­ных чисел, если

 

Y=1002

Х=10101002

 

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

2.

Ло­ги­че­ская функ­ция F задаётся вы­ра­же­ни­ем (¬z)∧x. Опре­де­ли­те, ка­ко­му столб­цу таб­ли­цы ис­тин­но­сти функ­ции F со­от­вет­ству­ет каж­дая из пе­ре­мен­ных x, y, z.

 

Перем. 1Перем. 2Перем. 3Функ­ция
?????????F
0000
0011
0100
0111
1000
1010
1100
1110

 

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

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

 

Перем. 1Перем. 2Функ­ция
??????F
001
010
101
111

 

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

3.

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

 

П1П2П3П4П5П6П7
П1572025
П2572242821
П322238
П42042733
П5823
П62579
П7218339

 

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

4.

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

 

Таблица 1
IDФамилия И.О.ПолГод рождения
127Грищенко А.В. М1936
148Грищенко Д.И. М1998
182 Грищенко Е.П. Ж1940
212Грищенко И.А. М1970
243 Грищенко Н.Н. Ж1976
254Клейн А.Б. М1981
314Клейн Е.А. Ж2009
412 Клейн М.А. Ж2011
543Панько О.А. Ж1948
544 Петров В.И. М1961
545 Петров О.В. М1991
750 Петрова А.Е. Ж1962
830 Седых А.Н. Ж1980
849Седых Н.Н. М1947

Таблица 2
ID РодителяID Ребенка
127 212
182212
212148
243148
254314
254412
543243
543830
544545
750545
830314
830412
849243
849830

5.

Для кодирования букв X, Е, Л, О, Д решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Закодируйте последовательность букв ЛЕДОХОД таким способом и результат запишите шестнадцатеричным кодом.

6.

Автомат получает на вход четырёхзначное десятичное число, в котором все цифры нечётные. По этому числу строится новое число по следующим правилам.

1. Складываются первая и вторая, а также третья и четвёртая цифры.

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

Пример. Исходное число: 7511. Суммы: 7 + 5 = 12; 1 + 1 = 2. Результат: 212. Сколько существует чисел, в результате обработки которых автомат выдаст число 616?

7.

Дан фраг­мент элек­трон­ной таб­ли­цы. Из ячей­ки D2 в одну из ячеек диа­па­зо­на E1:E4 была ско­пи­ро­ва­на фор­му­ла. При ко­пи­ро­ва­нии ад­ре­са ячеек в фор­му­ле ав­то­ма­ти­че­ски из­ме­ни­лись, и зна­че­ние фор­му­лы стало рав­ным 8. В какую ячей­ку была ско­пи­ро­ва­на фор­му­ла? В от­ве­те ука­жи­те толь­ко одно число – номер стро­ки, в ко­то­рой рас­по­ло­же­на ячей­ка.

 

ABCDE
11234
2234= B$3 + $C2
33456
44567

 

При­ме­ча­ние.

Знак $ обо­зна­ча­ет аб­со­лют­ную ад­ре­са­цию.

8.

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

 

БейсикПаскаль

a = 20

b = 15

b = 3 * b - a

IF a > b THEN

c = 2 * a + b

ELSE

c = 2 * a - b

END IF

a := 20;

b := 15;

b := 3 * b - a;

if a > b then

c := 2 * a + b

else

c := 2 * a - b;

Си++Алгоритмический язык

a = 20;

b = 15;

b = 3 * b - a;

if (a > b)

c = 2 * a + b;

else

c = 2 * a - b;

a := 20

b := 15

b := 3 * b - a

если a > b

то c := 2 * a + b

иначе c := 2 * a - b

все

Python

a = 20

b = 15

b = 3 * b - a

if a > b:

    c = 2 * a + b

else:

    c = 2 * a - b

 

9.

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

10.

Левий составляет 5-буквенные коды из букв Л, Е, В, И, Й. Каждую букву нужно использовать ровно 1 раз, при этом код не может начинаться с буквы Й и не может содержать сочетания ЕИ. Сколько различных кодов может составить Левий?

11.

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

 

БейсикПаскаль

SUB F(n)

  IF n > 0 THEN

    F(n - 4)

    F(n \ 3)

    PRINT n

  END IF

END SUB

procedure F(n: integer);

begin

  if n > 0 then

  begin

    F(n - 4);

    F(n div 3);

    writeln(n)

  end

end;

Си++Алгоритмический язык

void F(int n)

{

if (n > 0)

  {

    F(n - 4);

    F(n / 3);

    cout << n << endl;

  }

}

алг F(цел n)

нач

  если n > 0 то

    F(n - 4)

    F(div(n, 3))

    вывод n, нс

  все

кон

Python

def F(n):

    if n > 0:

        F(n - 4)

        F(n // 3)

        print(n)

 

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(10)?

12.

Для узла с IP-адресом 203.155.196.98 адрес сети равен 203.155.192.0. Найдите наибольшее возможное количество единиц в двоичной записи маски подсети.

13.

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

14.

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

 

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

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

за­ме­нить (555, 63)

пре­об­ра­зу­ет стро­ку 12555550 в стро­ку 1263550.

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

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

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

  Цикл

  ПОКА усло­вие

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

  КОНЕЦ ПОКА

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

  В кон­струк­ции

  ЕСЛИ усло­вие

      ТО ко­ман­да1

      ИНАЧЕ ко­ман­да2

  КОНЕЦ ЕСЛИ

  вы­пол­ня­ет­ся ко­ман­да1 (если усло­вие ис­тин­но) или ко­ман­да2 (если усло­вие ложно).

 

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

НА­ЧА­ЛО

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

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

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

    ИНАЧЕ за­ме­нить (999, 8)

  КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

15.

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

 

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

16.

Зна­че­ние ариф­ме­ти­че­ско­го вы­ра­же­ния: 98 + 35 – 9 – за­пи­са­ли в си­сте­ме счис­ле­ния с ос­но­ва­ни­ем 3. Сколь­ко цифр «2» со­дер­жит­ся в этой за­пи­си?

17.

В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:

 

ЗапросКоличество страниц
(тыс.)
торты | пироги12000
торты & пироги6500
пироги7700

 

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

18.

Элементами множеств А, P, Q являются натуральные числа, причём P = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, Q = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}.

Известно, что выражение

((x A) → (x P)) ∨ (¬(x Q) → ¬(x A))

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

Определите наибольшее возможное количество элементов в множестве A.

19.

В про­грам­ме ис­поль­зу­ет­ся од­но­мер­ный це­ло­чис­лен­ный мас­сив A с ин­дек­са­ми от 0 до 9. Зна­че­ния эле­мен­тов равны 5, 28, 8, 14, 9, 23, 6, 18, 51, 99 со­от­вет­ствен­но, то есть A[0] = 5, A[1] = 28 и т. д. Опре­де­ли­те зна­че­ние пе­ре­мен­ной t после вы­пол­не­ния сле­ду­ю­ще­го фраг­мен­та про­грам­мы, за­пи­сан­но­го ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния.

 

Бей­сикPython

i = 0: j = 9

WHILE A(i) < 10

    i = i + 1

WEND

WHILE A(j) > 10

    j = j - 1

WEND

t = A(i) - A(j)

i = 0

j = 9

while A[i] < 10 :

     i += 1

while A[j] > 10 :

     j -= 1

t = A[i] - A[j]

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

i = 0; j = 9;

while A[i] < 10 do

  i := i + 1;

while A[j] > 10 do

  j := j - 1;

t := A[i] - A[j];

i := 0

j := 9

нц пока A[i] < 10

   i := i + 1

кц

нц пока A[j] > 10

  j :=j - 1

кц

t := A[i] - A[j]

Си++

i = 0;

j = 9;

while (A[i] < 10) {

  i += 1;

}

while (A[j] > 10) {

  j -= 1;

}

t = A[i] - A[j];

 

20.

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 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;

}

 

21.

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

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < G(I)+K

    I = I + 1

WEND

  PRINT I

FUNCTION F(N)

  F = (N+1) * (N+1)

END FUNCTION

FUNCTION G(N)

    G = N * N

END FUNCTION

def f(n):

    return (n+1)*(n+1)

def g(n):

    return n*n

i = 1

k = int(input())

while f(i) < g(i) + k:

    i+=1

print (i)

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

var

    k, i : longint;

 

function f(n: longint) : longint;

begin

    f := (n+1) * (n+1);

end;

function g(n: longint) : longint;

begin

    g:= n * n;

end;

begin

    readln(k);

    i := 1;

     while f(i) < g(i) + k do

        i := i+1;

    writeln(i)

end.

алг

нач

    цел i, k

    ввод k

    i := 1

    нц пока f(i) < g(i) + k

        i := i + 1

    кц

    вывод i

    все

кон

алг цел f(цел n)

нач

    знач := (n+1) * (n+1)

кон

алг цел g(цел n)

нач

    знач := n * n

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

    return (n+1) * (n+1);

}

long g(long n) {

    return n * n ;

}

 

int main()

{

    long k, i;

    cin >> k;

    i = 1;

    while (f(i) < g(i)+ k) {

        i++;

    }

        cout << i << endl;

 

22.

Ис­пол­ни­тель А22 пре­об­ра­зу­ет целое число, за­пи­сан­ное на экра­не.

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

        1. При­бавь 1

        2. При­бавь 3

        3. При­бавь преды­ду­щее

Пер­вая ко­ман­да уве­ли­чи­ва­ет число на экра­не на 1, вто­рая уве­ли­чи­ва­ет это число на 3, тре­тья при­бав­ля­ет к числу на экра­не число, мень­шее на 1 (к числу 3 при­бав­ля­ет­ся 2, к числу 11 при­бав­ля­ет­ся 10 и т. д.). Про­грам­ма для ис­пол­ни­те­ля А22 – это по­сле­до­ва­тель­ность ко­манд.

Сколь­ко су­ще­ству­ет про­грамм, ко­то­рые число 2 пре­об­ра­зу­ют в число 10?

23.

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

 

(x1 \/ ¬x2) → (x3 \/ ¬x4) = 1

(x3 \/ ¬x4) → (x5 \/ ¬x6) = 1

(x5 \/ ¬x6) → (x7 \/ ¬x8) = 1

 

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

24.

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

 

БейсикPython

COUNT = 0

MAXIMUM = 1000

FOR I = 1 TO 4

    INPUT X

    IF X MOD 3 <> 0 THEN

        COUNT = COUNT + 1

        IF X > MAXIMUM THEN

            MAXIMUM = I

        END IF

    END IF

NEXT I

IF COUNT > THEN

    PRINT COUNT

    PRINT MAXIMUM

ELSE

    PRINT “NO”

END IF

count = 0

maximum = 1000

for i in range(4):

    x = int(input())

    if x % 3 != 0:

        count = count + 1

        if x > maximum:

            maximum = i

if count > 0:

    print(count)

    print(maximum)

else:

    print("NO")

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

var i, x: integer;

var maximum, count: integer;

begin

     count := 0;

    maximum := 1000;

    for i:=1 to 4 do begin

         read( x );

         if x mod 3 <> 0 then begin

            count := count + 1;

             if x > maximum then

                 maximum := i;

            end;

         end;

     if count > 0 then begin

        writeln(count);

        writeln(maximum);

     end

    else

        writeln('NO');

end.

алг

нач

цел i, x

цел maximum, count

count := 0

maximum := 1000

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

ввод x

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

count := count + 1

если x > maximum то

maximum := i

все

все

кц

если count > 0 то

вывод count, нс

вывод maximum

иначе

вывод "NO"

все

кон

Си++

#include <iostream>

using namespace std;

 

int main(){

    int i, x, maximum;

    int count = 0;

    maximum = 1000;

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

        cin >> x;

        if ( x % 3 != 0 ) {

             count = count + 1;

             if ( x > maximum ) maximum = i;

            }

        }

     if ( count > 0 ) {

        cout << count << endl;

        cout << maximum;

    }

    else

        cout << "NO";

     return 0;

}

 

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

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

2. Приведите пример такой последовательности, содержащей число, кратное 3, при вводе которой программа выведет правильный ответ.

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

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

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

25.

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

На­при­мер, для мас­си­ва из четырёх эле­мен­тов, рав­ных 80, 91, 162 и 250, в от­ве­те долж­но по­лу­чить­ся 162. В шест­на­дца­те­рич­ном виде эти числа за­пи­сы­ва­ют­ся как 50, 5B, A2 и FA. По­след­ний сим­вол в де­ся­тич­ной и шест­на­дца­те­рич­ной за­пи­си сов­па­да­ет у пер­во­го и тре­тье­го числа, боль­шее из них — тре­тье, то есть 162.

 

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

 

 

Бей­сикPython

CONST N=2018

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 = 2018

for i in range(0, N):

    a.append(int(input()))

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

const

    N=2018;

var

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

    i, m, k: integer;

begin

    for i:=1 to N do

        readln(a[i]);

    …

end.

алг

нач

    цел N=2018

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

    цел i, m, k

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

        ввод a[i]

    кц

    …

кон

Си++

#include <iostream>

using namespace std;

const int N = 2018;

int main(){

    int a[N];

    int i, m, k;

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

        cin >> a[i];

    …

    return 0;

}

 

 

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

26.

Два игрока, Петя и Ваня, играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 4, а во второй — 3 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди, первый ход делает Петя. Ход состоит в том, что игрок или утраивает число камней в какой-то куче, или добавляет 2 камня в какую-то кучу. Игра завершается в тот момент, когда количество камней в одной из куч становится не менее 20. Если в момент завершения игры общее число камней в двух кучах не менее 36, то выиграл Ваня, в противном случае — Петя. Кто выигрывает при безошибочной игре обоих игроков? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

27.

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

После окончания эксперимента передаётся контрольное значение — наибольшее число R, удовлетворяющее следующим условиям:

1) R — произведение двух чисел, переданных в разные минуты;

2) R делится на 26.

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

В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.

Напишите эффективную по времени и используемой памяти программу (укажите используемую версию языка программирования, например Free Pascal 2.6.4), которая будет проверять правильность контрольного значения. Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, т.е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.

Программа должна напечатать отчёт по следующей форме.

 

Вычисленное контрольное значение: …

Контроль пройден (или Контроль не пройден)

 

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

На вход программе в первой строке подаётся количество чисел N ≤ 100 000. В каждой из последующих N строк записано одно положительное целое число, не превышающее 1000. В последней строке записано контрольное значение.

 

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

5

52

12

39

55

23

2860

 

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

Вычисленное контрольное значение: 2860

Контроль пройден