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

1.

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

2.

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

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

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

 

Переменная 1Переменная 2Переменная 3Функция
?????????F
000
00

 

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

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

 

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

 

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

3.

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

 

П1П2П3П4П5П6П7П8
П1152018
П21525
П3252422
П42012
П5131617
П6241315
П71216
П818221715

 

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

4.

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

 

 

Таблица 1
IDФамилия_И.О.Пол
139Гончар В. А. Ж
1028Месхи А. П.М
1138 Месхи П. А. Ж
3361 Глинка Т. Х.М
3695 Глинка Т. И. Ж
4579Глинка А. К.М
4690Коротич Л. П. Ж
5255 Глинка И. А. М
6127Коротич А. А. М
6141 Глинка П. И. М
7247 Глинка Е. А. Ж
7368 Плевако С. А. Ж
8215 Гончар Н. А. М
8365Бах А. А. Ж

Таблица 2
ID_РодителяID_Ребенка
7247 139
1028139
72471138
10281138
52553695
33613695
45795255
46905255
52556141
33616141
45797247
46907247
72477368
10287368

5.

По каналу связи передаются сообщения, содержащие только шесть букв: А, B, C, D, E, F. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано. Для букв A, B, C используются такие кодовые слова: А — 11, B — 101, C — 0. Укажите кодовое слово наименьшей возможной длины, которое можно использовать для буквы F. Если таких слов несколько, укажите то из них, которое соответствует наименьшему возможному двоичному числу. Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование

6.

Автомат получает на вход четырёхзначное число (число не может начинаться с нуля). По этому числу строится новое число по следующим правилам.

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

2. Наименьшая из полученных трёх сумм удаляется.

3. Оставшиеся две суммы записываются друг за другом в порядке неубывания без разделителей.

 

Пример. Исходное число: 1984. Суммы: 1 + 9 = 10, 9 + 8 = 17, 8 + 4 = 12. Удаляется 10. Результат: 1217.

Укажите наибольшее число, при обработке которого автомат выдаёт результат 613.

7.

Дан фраг­мент элек­трон­ной таб­ли­цы.

 

ABC
146
2= (A1 − 2)/(B1 − 1)= C1*B1/(4*A1 + 4)= C1/(A1 − 2)

 

Какое целое число долж­но быть за­пи­са­но в ячей­ке A1, чтобы диа­грам­ма, по­стро­ен­ная по зна­че­ни­ям ячеек диа­па­зо­на A2:С2, со­от­вет­ство­ва­ла ри­сун­ку? Из­вест­но, что все зна­че­ния ячеек из рас­смат­ри­ва­е­мо­го диа­па­зо­на не­от­ри­ца­тель­ны.

8.

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

 

 

БейсикPython

DIM N, S AS INTEGER

N = 1

S = 0

WHILE N <= 101

    S = S + 7

    N = N + 1

WEND

PRINT S

n = 1

s = 0

while n <= 101:

    s += 7

    n += 1

print(s)

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

var n, s: integer;

begin

    n := 1;

    s := 0;

    while n <= 101 do

    begin

        s := s + 7;

        n := n + 1;

    end;

    writeln(s);

end.

алг

нач

    цел n, s

    n := 1

    s := 0

    нц пока n <= 101

        s := s + 7

        n := n + 1

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int n, s;

    n = 1, s = 0;

    while (n <= 101) {

        s = s + 7;

        n = n + 1;

    }

    cout << s << endl;

    return 0;

}

 

9.

Производится двухканальная (стерео) звукозапись с частотой дискретизации 32 кГц и 32-битным разрешением. Запись длится 2 минуты, её результаты записываются в файл, сжатие данных не производится. Определите приблизительно размер полученного файла (в мегабайтах). В качестве ответа укажите ближайшее к размеру файла целое число, кратное 10.

10.

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует 5-буквенные слова, в которых есть только буквы A, B, C, X, причём буква X появляется ровно 1 раз и только на 1-й или последней позиции слова. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь

11.

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

 

БейсикPython

FUNCTION F(n)

    IF n > 2 THEN

        F = F(n - 1) + G(n - 2)

    ELSE

        F = n+1

    END IF

END FUNCTION

 

FUNCTION G(n)

    IF n > 2 THEN

        G = G(n - 1) + F(n - 2)

    ELSE

        G = n

    END IF

END FUNCTION

def F(n):

    if n > 2:

        return F(n - 1)+ G(n - 2)

    else: return n+1

 

def G(n):

    if n > 2:

        return G(n - 1)+ F(n - 2)

    else: return n

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

function F(n: integer): integer;

begin

    if n > 2 then

        F := F(n - 1) + G(n - 2)

    else

        F := n+1;

end;

 

function G(n: integer): integer;

begin

    if n > 2 then

        G := G(n - 1) + F(n - 2)

    else

        G := n;

end;

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

нач

    если n > 2

        то

            знач := F(n - 1)+G(n - 2)

        иначе

            знач := n+1

    все

кон

 

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

нач

    если n > 2

        то

            знач := G(n - 1)+F(n - 2)

        иначе

            знач := n

    все

кон

Си

int F(int n)

{

if (n > 2)

return F(n - 1) + G(n - 2);

else return n+1;

}

int G(int n)

{

if (n > 2)

return G(n - 1) + F(n -2);

else return n;

}

 

 

Чему будет равно значение, вычисленное при выполнении вызова G(7)?

12.

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

 

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

 

Для узла с IP-ад­ре­сом 136.128.196.48 адрес сети равен 136.128.192.0. Чему равно наи­боль­шее воз­мож­ное зна­че­ние тре­тье­го слева байта маски? Ответ за­пи­ши­те в виде де­ся­тич­но­го числа.

13.

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 20 символов и содержащий только заглавные буквы латинского алфавита — всего 26 возможных символов. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байтов. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством битов. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байтов; это число одно и то же для всех пользователей. Для хранения сведений о 25 пользователях потребовалось 500 байт. Сколько байтов выделено для хранения дополнительных сведений об одном пользователе? В ответе запишите только целое число — количество байтов.

14.

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

и 4 команды проверки условия.

Команды-приказы:

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

При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены,

то он разрушится, и программа прервётся.

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

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

Цикл

ПОКА условие

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

КОНЕЦ ЦИКЛА

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

 

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

ЕСЛИ условие

ТО команда1

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

КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно). В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.

 

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

 

НАЧАЛО

ПОКА снизу свободно ИЛИ справа свободно

ЕСЛИ справа свободно

ТО вправо

ИНАЧЕ вниз

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

15.

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

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

16.

В си­сте­ме счис­ле­ния с ос­но­ва­ни­ем N за­пись числа 8710 окан­чи­ва­ет­ся на 2 и со­дер­жит не более двух цифр. Пе­ре­чис­ли­те через за­пя­тую в по­ряд­ке воз­рас­та­ния все под­хо­дя­щие зна­че­ния N.

17.

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

 

ЗапросНайдено страниц
(в сотнях тысяч)
Барселона & Реал420
(Барселона & Реал) | (Барселона & Атлетико) 545
Барселона & Атлетико455

 

Какое количество страниц (в тысячах) будет найдено по запросу Барселона & Реал & Атлетико? Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов

18.

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

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

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

 

 

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

19.

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

Опре­де­ли­те зна­че­ние пе­ре­мен­ной s после вы­пол­не­ния фраг­мен­та этой про­грам­мы (за­пи­сан­но­го ниже на раз­ных язы­ках про­грам­ми­ро­ва­ния).

 

Бей­сикPython

n = 10

s = 0

FOR i = 2 TO n

    IF A(i-1) < A(i) THEN

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

        s = s + A(i)

    END IF

NEXT i

n = 10

s = 0

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

    if A[i-1] < A[i]:

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

        s = s + A[i]

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

n := 10;

s := 0;

for i:=2 to n do begin

    if A[i-1] < A[i] then begin

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

        s := s + A[i]

    end

end;

n := 10

s := 0

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

    если A[i-1] < A[i]

        то

            A[i] := A[i] + A[i-1]

            s := s + A[i]

    все

кц

Си++

n = 10;

s = 0;

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

    if (A[i-1] < A[i]) {

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

        s = s + A[i];

    }

}

 

20.

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

 

Бей­сикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

    IF X MOD 2 = 0 THEN

        A = A + 1

    ELSE

        B = B + X MOD 10

    END IF

    X = X \ 10

WEND

PRINT A

PRINT B

x = int(input())

a=0; b=0

while x > 0:

    if x%2 == 0:

        a += 1

    else:

        b += x%10

    x = x//10

print(a, b)

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

var x, a, b: longint;

begin

    readln(x);

    a := 0; b := 0;

    while x > 0 do

    begin

        if x mod 2= 0 then

            a := a + 1

        else

            b := b + x mod 10;

        x := x div 10;

    end;

    writeln(a); write(b);

end.

алг

нач

    цел x, a, b

    ввод x

    a := 0; b := 0

    нц пока x > 0

        если mod(x,2)=0

            то a := a+1

            иначе b := b + mod(x,10)

        все

        x := div(x,10)

    кц

    вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 0;

    while (x > 0) {

        if (x%2 == 0) a += 1;

        else b += x%10;

        x = x / 10;

    }

    cout << a << endl << b << endl;

    return 0;

}

 

21.

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

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 20

WHILE F(I) > K

    I = I - 1

WEND

PRINT I

FUNCTION F(N)

    F = N * N * N

END FUNCTION

def f(n):

    return n * n * n

k = int(input())

i = 20

while f(i) > k:

    i -= 1

print(i)

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

var

    k, i : longint;

function f(n: longint): longint;

begin

    f := n * n * n

end;

begin

    readln(k);

    i := 20;

    while f(i) > k do

        i := i-1;

    writeln(i)

end.

алг

нач

    цел k, i

    ввод k

    i := 20

    нц пока f(i) > k

        i := i - 1

    кц

    вывод i

кон

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

нач

    знач := n * n * n

кон

Си++

#include <iostream>

using namespace std;

long f(long n) {

return n * n * n;

}

int main()

{

    long k, i;

    cin >> k;

    i = 20;

    while (f(i) > k) --i;

    cout << i;

    return 0;

}

 

22.

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

 

1. прибавь 1

2. прибавь 2.

 

Первая из них увеличивает число на экране на 1, вторая — на 2. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит не более 4 команд?

23.

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

(x1→x2) /\ (y1→y2) /\ (y1→x1) = 1

(x2→x3) /\ (y2→y3) /\ (y2→x2) = 1

(x7→x8) /\ (y7→y8) /\ (y7→x7) = 1

(y8→x8) = 1

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

24.

Дано целое положительное число N. Необходимо определить максимальное значение степени числа 2, на которое N делится без остатка. Например, для N = 2016 нужно получить результат 32, а для N = 2017 — результат 1. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 2

WHILE N MOD 2 = 0

  N = N\2

  K = K + 1

WEND

PRINT K

END

n = int(input())

k = 2

while n%2 == 0:

  n = n//2

  k = k + 1

print(k)

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

var n, k: integer;

begin

  read(n);

  k := 2;

  while n mod 2 = 0 do begin

    n := n div 2;

    k := k + 1;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 2

  нц пока mod(n,2) = 0

    n := div(n,2)

    k := k+1

  кц

  вывод k

кон

Си++

#include <iostream>

using namespace std;

int main(){

  int n, k;

  cin >> n;

  k = 2;

  while (n%2 == 0) {

    n = n/2;

    k = k + 1;

  }

  cout « k « endl;

  return 0;

}

 

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

1. Напишите, что выведет эта программа при вводе N = 2016.

2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

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

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

25.

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, делящихся на 5. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно 5, то вывести сообщение «Не найдено».

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

 

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

N = 20

DIM A(N) AS INTEGER

DIM I, J, MAX AS INTEGER

FOR I = 1 TO N

    INPUT A(I)

NEXT I

...

END

const

    N = 20;

var

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

    i, j, max: integer;

begin

    for i := 1 to N do

        readln(a[i]);

    ...

end.

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

#include <iostream>

using namespace std;

#define N 20

int main() {

    int a[N];

    int i, j, max;

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

        cin >> a[i];

...

}

алг

нач

    цел N = 20

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

    цел i, j, max

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

        ввод a[i]

    кц

    ...

кон

Естественный язык

Объявляем массив А из 20 элементов.

Объявляем целочисленные переменные I, J, MAX.

В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й.

Python

// допускается также использовать

// целочисленные переменные j, max

a = []

n = 20

for i in range(0, n):

    a.append(int(input()))

 

 

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

26.

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

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

В на­чаль­ный мо­мент в куче было S кам­ней; 1 ≤ S ≤ 21.

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

встре­тить­ся при раз­лич­ной игре про­тив­ни­ка.

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

 

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

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

 

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

 

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

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

27.

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

Районный методист решила выяснить номера школ, в которых один и тот же максимальный балл набрало более двух учеников. Например, если в школах 3, 5 и 7 по три ученика набрало баллы соответственно 70, 80 и 90 нужно вывести номера эти школ.

Если таких школ несколько нужно вывести номера этих школ. Если такая школа одна нужно вывести её номер и максимальный балл.

Если таких школ нет, то нужно вывести "Нет таких школ"

Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая должна вывести на экран требуемую информацию. Известно, что информатику сдавало больше 5-ти учеников района. Также известно, что в районе школы с некоторыми номерами не существуют.

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

 

<Фамилия> <Имя> <Номер школы> <Количество баллов>

 

где <Фамилия> — строка, состоящая не более чем из 30 символов без пробелов,

<Имя> — строка, состоящая не более чем из 20 символов без пробелов,

<Номер школы> — целое число в диапазоне от 1 до 99,

<Количество баллов> — целое число в диапазоне от 1 до 100.

Эти данные записаны через пробел, причём ровно один между каждой парой (то есть всего по три пробела в каждой строке).

Пример входной строки:

Иванов Иван 50 87

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

5 50 74 87

Другой вариант выходных данных:

7

Наибольший балл = 74

Третий вариант выходных данных:

Нет таких школ