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

1.

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

2.

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

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции 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
П14510
П2454055
П31560
П410402035
П51555
П65560205545
П73545

 

 

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

4.

В фрагменте базы данных представлены сведения о родственных отношениях.

 

Таблица 1
IDФамилия_И.О.Пол
1108Козак Е.Р.Ж
1010Котова М.С.Ж
1047Лацис Н.Б.Ж
1037Белых С.Б.Ж
1083Петрич В.И.Ж
1025Саенко А.И.Ж
1071Белых А.И.М
1012Белых И.А.М
1098Белых Т.А.М
1096Белых Я.А.М
1051Мугабе Р.ХМ
1121Петрич Л.Р.М
1086Петрич Р.С.М

Таблица 2
ID_РодителяID_Ребенка
10101071
10121071
10101083
10121083
10251086
10471096
10711096
10471098
10711098
10831108
10861108
10831121
10861121

 

Определите на основании приведенных данных ID внучки Белых И. А.

 

5.

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

6.

Имеется исполнитель Кузнечик, который живет на числовой оси. Система команд Кузнечика:

Вперед N (Кузнечик прыгает вперед на N единиц);

Назад M (Кузнечик прыгает назад на M единиц).

Переменные N и M могут принимать любые целые положительные значения. Известно, что Кузнечик выполнил программу из 50 команд, в которой команд “Назад 2” на 12 больше, чем команд “Вперед 3”. Других команд в программе не было. На какую одну команду можно заменить эту программу, чтобы Кузнечик оказался в той же точке, что и после выполнения программы?

7.

На пред­при­я­тии ра­бо­та­ют 100 че­ло­век. Каж­дый из них вла­де­ет как ми­ни­мум одним ино­стран­ным язы­ком (ан­глий­ским, не­мец­ким или фран­цуз­ским), На сле­ду­ю­щей диа­грам­ме от­ра­же­но ко­ли­че­ство че­ло­век, вла­де­ю­щих каж­дым из язы­ков.

Вто­рая диа­грам­ма от­ра­жа­ет ко­ли­че­ство че­ло­век, зна­ю­щих толь­ко один язык, толь­ко два языка или все три ино­стран­ных языка.

Опре­де­ли­те ко­ли­че­ство че­ло­век, вла­де­ю­щих од­но­вре­мен­но ан­глий­ским и не­мец­ким, но не го­во­ря­щих по-фран­цуз­ски.

8.

За­пи­ши­те зна­че­ние пе­ре­мен­ной а после вы­пол­не­ния фраг­мен­та ал­го­рит­ма:

 

*При­ме­ча­ние: зна­ком := обо­зна­че­на опе­ра­ция при­сва­и­ва­ния. В бланк от­ве­тов впи­ши­те толь­ко число.

9.

Текстовый документ, состоящий из 3072 символов, хранился в 8-битной кодировке КОИ-8. Этот документ был преобразован в 16-битную кодировку Unicode. Укажите, какое дополнительное количество Кбайт потребуется для хранения документа. В ответе запишите только число.

10.

Шифр ко­до­во­го замка пред­став­ля­ет собой по­сле­до­ва­тель­ность из пяти сим­во­лов, каж­дый из ко­то­рых яв­ля­ет­ся циф­рой от 1 до 4. Сколь­ко раз­лич­ных ва­ри­ан­тов шифра можно за­дать, если из­вест­но, что цифра 1 встре­ча­ет­ся ровно два раза, а каж­дая из дру­гих до­пу­сти­мых цифр может встре­чать­ся в шифре любое ко­ли­че­ство раз или не встре­чать­ся со­всем?

11.

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

 

 

Бей­сикPython

SUB F(n)

    PRINT n,

    IF n > 2 THEN

       F(n − 1)

       F(n − 2)

       F(n − 3)

    END IF

END SUB

def F(n):

    print (n)

    if n > 2:

        F(n − 1)

        F(n − 2)

        F(n − 3)

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

procedure F(n: integer);

begin

    write(n);

    if n > 2 then

    begin

      F(n − 1);

      F(n − 2);

      F(n − 3)

    end

end;

алг F(цел n)

нач

    вывод n

    если n > 2 то

      F(n − 1)

      F(n − 2)

      F(n − 3)

    все

кон

Си

void F(int n ){

    cout « n « endl;

    if (n > 2) {

        F(n − 1);

        F(n − 2);

        F(n − 3);

    }

}

 

 

Что вы­ве­дет про­грам­ма при вы­зо­ве F(4)? В от­ве­те за­пи­ши­те по­сле­до­ва­тель­ность вы­ве­ден­ных цифр слит­но (без про­бе­лов).

12.

Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-адресе компьютера для адреса компьютера в подсети, имеют значение 0.

Если маска подсети 255.255.248.0 и IP-адрес компьютера в сети 112.154.133.208, то номер компьютера в сети равен_____

13.

В не­ко­то­рой стра­не про­жи­ва­ет 1000 че­ло­век. Ин­ди­ви­ду­аль­ные но­ме­ра на­ло­го­пла­тель­щи­ков-фи­зи­че­ских лиц в этой стра­не со­дер­жат толь­ко цифры 0, 1, 2 и 3. Ка­ко­во ми­ни­маль­ное ко­ли­че­ство раз­ря­дов в ИНН в этой стра­не, если раз­лич­ные между собой но­ме­ра имеют аб­со­лют­но все жи­те­ли?

14.

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

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

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

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

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

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

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

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

Цикл

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

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

  КОНЕЦ ПОКА

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

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

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

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

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

  КОНЕЦ ЕСЛИ

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

 

Ниже при­ве­де­на про­грам­ма для ис­пол­ни­те­ля Ре­дак­тор.

НА­ЧА­ЛО

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

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

    ТО за­ме­нить (133, 81)

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

  КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

 

На вход этой про­грам­ме по­да­ет­ся стро­ка, со­сто­я­щая из 100 цифр; по­след­няя цифра в стро­ке — цифра 1, а осталь­ные цифры — восьмёрки. Какая стро­ка по­лу­чит­ся в ре­зуль­та­те при­ме­не­ния про­грам­мы к этой стро­ке? В от­ве­те за­пи­ши­те по­лу­чен­ную стро­ку.

15.

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

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

16.

Запись числа 338 в системе счисления с основанием N содержит 3 цифры и оканчивается на 2. Чему равно максимально возможное основание системы счисления?

17.

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

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

 

ЗапросНайдено страниц
(в тысячах)
(Суворов & Альпы) | (Суворов & Варшава)1100
Суворов & Варшава600
Суворов & Варшава & Альпы50

 

 

Какое количество страниц (в тыс.) будет найдено по запросу Суворов & Альпы?

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

18.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14&5 = 11102&01012 = 01002 = 4.

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

 

x&25 ≠ 0 → (x&17 = 0 → x&А ≠ 0)

 

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

19.

Зна­че­ния эле­мен­тов двух­мер­но­го мас­си­ва A[1..10,1..10] сна­ча­ла равны 4. Затем вы­пол­ня­ет­ся сле­ду­ю­щий фраг­мент про­грам­мы:

 

Бей­сикPython

FOR i = 1 TO 4

    FOR j = 1 TO 5

        A(i,j) = A(i,j)+4

        A(j,i) = A(j,i)+5

    NEXT j

NEXT i

for i in range(1, 5):

    for j in range(1, 6):

        A[i,j] = A[i,j]+4

        A[j,i] = A[j,i]+5

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

for i:= 1 to 4 do

    for j:=1 to 5 do begin

        A[i,j]:=A[i,j]+4;

        A[j,i]:=A[j,i]+5;

    end;

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

    нц для j от 1 до 5

        A[i,j]:=A[i,j]+4

        A[j,i]:=A[j,i]+5

    кц

кц

Си++

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

    for (j = 1; j <= 5; j++) {

        A[i][j]=A[i][j]+4;

        A[j][i]=A[j][i]+5;

    }

}

 

 

Сколь­ко эле­мен­тов мас­си­ва будут равны 9?

20.

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

 

 

Бей­сикPython

DIM X, L, M AS INTEGER

INPUT X

L = 0: M = 1

WHILE X > 0

    L = L + 1

    IF X MOD 2 > 0 THEN

        M = M * (X MOD 8)

    END IF

    X = X \ 8

WEND

PRINT M

PRINT L

 

x = int(input())

l=0; m=1

while x > 0:

    l += 1

    if x%2 > 0:

        m *= x%8

    x = x//8

print(m, l)

 

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

var x, L, M: longint;

begin

    readln(x);

    L := 0; M := 1;

    while x > 0 do begin

        L := L+ 1;

        if x mod 2 <> 0 then

            M := M * (x mod 8);

        x := x div 8;

    end;

    writeln(M); write(L);

end.

 

алг

нач

    цел x, L, M

    ввод x

    L := 0; M := 1

    нц пока x > 0

        L := L + 1;

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

            то M := M * mod(x,8)

        все x := div(x,8)

    кц

    вывод M, нс, L

кон

 

С++

#include <iostream>

using namespace std;

int main()

{

    int x, L, M;

    cin >> x;

    L = 0; M = 1;

    while (x > 0) {

        L++;

        if (x%2 > 0)

            M *= x%8;

        x = x / 8;

    }

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

    return 0;

}

 

 

21.

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

 

БейсикPython

DIM K, I AS LONG

INPUT K

I = 12

WHILE I > 0 AND F(I) >= K

    I = I - 1

WEND

PRINT I

FUNCTION F(N)

    F = N * N + 20

END FUNCTION

def f(n):

    return n * n + 20

k = int(input())

i = 12

while i > 0 and f(i) >= k:

    i = i - 1

print(i)

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n * n + 20

        end;

begin

    readln(k);

    i := 12;

    while (i>0) and (f(i)>=k) do

        i := i-1;

    writeln(i)

end.

алг

нач

цел i, k

ввод k

i := 12

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

i := i - 1

кц

вывод i

кон

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

нач

знач := n * n + 20

кон

Си++

#include <iostream>

using namespace std;

long f(long n) { return n * n + 20; }

int main()

{

    long k, i;

    cin >> k;

    i = 12;

    while (i>0 && f(i)>=k) i––;

    cout << i << endl;

}

 

22.

Исполнитель А22 преобразует целое число, записанное на экране. У исполнителя три команды, каждой команде присвоен номер:

1) Прибавь 1

2) Прибавь 2

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

Первая команда увеличивает число на экране на 1, вторая увеличивает это число на 2, третья прибавляет к числу на экране число, меньшее на 1 (к числу 3 прибавляется 2, к числу 11 прибавляется 10 и т. д.). Программа для исполнителя А22 — это последовательность команд. Сколько существует программ, которые число 2 преобразуют в число 9?

23.

Сколь­ко су­ще­ству­ет раз­лич­ных на­бо­ров зна­че­ний ло­ги­че­ских пе­ре­мен­ных x1, х2, хЗ, х4, х5, хб, х7, х8, ко­то­рые удо­вле­тво­ря­ют всем пе­ре­чис­лен­ным ниже усло­ви­ям?

 

(x1 —> х2) —> (хЗ—> х4) = 1

(хЗ —> х4) —> (х5 —> хб) = 1

(х5 —> хб) —> (х7 —> х8) = 1

 

В от­ве­те не нужно пе­ре­чис­лять все раз­лич­ные на­бо­ры зна­че­ний пе­ре­мен­ных x1, х2, хЗ, х4, х5, хб, х7, х8, при ко­то­рых вы­пол­не­на дан­ная си­сте­ма ра­венств. В ка­че­стве от­ве­та Вам нужно ука­зать ко­ли­че­ство таких на­бо­ров.

24.

Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая ре­ша­ет урав­не­ние «a |x| = b» от­но­си­тель­но х для любых чисел а и b, вве­ден­ных с кла­ви­а­ту­ры. Все числа счи­та­ют­ся дей­стви­тель­ны­ми. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.

 

 

Бей­сикPython

INPUT a, b, x

IF a = 0 THEN

IF b = 0 THEN

PRINT "любое число"

ELSE

PRINT "нет ре­ше­ний"

ENDIF

ELSE

IF b = 0 THEN

PRINT "x =0"

ELSE

PRINT "x =",b/a, "или x =",-b/a

ENDIF

ENDIF

END

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b == 0:

        print('любое число')

    else:

        print('нет ре­ше­ний')

else:

    if b == 0:

        print('x = 0')

    else:

        print('x =', b/a, 'или x =',-b/a)

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

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

    if b = 0 then

        write ('любое число')

    else

        write ('нет ре­ше­ний')

else

    if b = 0 then

        write('x = 0')

    else

        write('x =',b/a,' или x =',-b/a);

end.

алг

нач

    вещ a,b,x

    если a = 0 то

        если b = 0 то

            вывод "любое число"

        иначе вывод "нет ре­ше­ний"

        все

    иначе

        если b = 0 то

            вывод "x = 0"

        иначе

            вывод "x =", b/a, "или x =",-b/a

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{float a,b,x;

cin >> a >> b >> x;

if (a==0)

if (b==0)

cout << "любое число";

else

cout << "нет ре­ше­ний";

else

if (b==0)

cout << "x - 0";

else

cout << "x=" << b/a << "или x=" << -b/a << endl;

}

 

 

По­сле­до­ва­тель­но вы­пол­ни­те три за­да­ния:

1) При­ве­ди­те при­мер таких чисел a, b, x, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную за­да­чу.

2) Ука­жи­те, какая часть про­грам­мы яв­ля­ет­ся лиш­ней.

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

25.

Дан массив, содержащий 2014 положительных целых чисел. Симметричной парой называются два элемента, которые находятся на равном расстоянии от концов массива. Например, 1-й и 2014-й элементы, 2-й и 2013-й и т. д. Порядок элементов в симметричной паре не учитывается: элементы на 1 и 2014 местах — это та же самая пара, что и элементы на 2014 и 1 местах. Напишите на одном из языков программирования программу, которая подсчитывает в массиве количество симметричных пар, у которых сумма элементов меньше 100. Программа должна вывести одно число — количество отобранных симметричных пар. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.

 

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

N=2014

DIM A(N) AS INTEGER

DIM I, J, K AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

const

N=2014;

var

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

i, j, k: integer;

begin

for i:=1 to N do

readln(a[i]);

end.

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

#include <iostream>

using namespace std;

#define N 2014

int main(){

int a[N];

int i, j, k;

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

cin >> a[i];

}

алг

нач

цел N=2014

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

цел i, j, k

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

ввод a[i]

кц

кон

Python

# допускается также

# использовать две

# целочисленные переменные j, k

a = []

n = 2014

for i in range(0, n):

    a.append(int(input()))

...

 

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

26.

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

27.

Го­ноч­ная трас­са со­сто­ит из двух ос­нов­ных дорог и не­сколь­ких пе­ре­ез­дов, поз­во­ля­ю­щих пе­рей­ти с одной до­ро­ги на дру­гую. На всех участ­ках, вклю­чая пе­ре­ез­ды, дви­же­ние раз­ре­ше­но толь­ко в одну сто­ро­ну, по­это­му пе­ре­езд воз­мо­жен толь­ко с до­ро­ги A на до­ро­гу B. Гон­щик стар­ту­ет в точке A0 и дол­жен фи­ни­ши­ро­вать в точке BN. Он знает, за какое время смо­жет прой­ти каж­дый уча­сток пути по каж­дой до­ро­ге, то есть время про­хож­де­ния участ­ков A0A1, A1A2, …, AN-1AN, B0B1, B1B2, …, BN-1BN. Время про­хож­де­ния всех пе­ре­ез­дов A0B0, A1B1, …, ANBN оди­на­ко­во и из­вест­но гон­щи­ку. Не­об­хо­ди­мо опре­де­лить, за какое ми­ни­маль­ное время гон­щик смо­жет прой­ти трас­су.

 

Вам пред­ла­га­ет­ся два за­да­ния с по­хо­жи­ми усло­ви­я­ми: за­да­ние А и за­да­ние Б. Вы мо­же­те ре­шать оба за­да­ния или одно из них по сво­е­му вы­бо­ру. За­да­ние Б более слож­ное, его ре­ше­ние оце­ни­ва­ет­ся выше. Ито­го­вая оцен­ка вы­став­ля­ет­ся как мак­си­маль­ная из оце­нок за за­да­ния А и Б.

 

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

Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му – 2 балла.

 

За­да­ние Б. Име­ет­ся набор дан­ных о пунк­тах Ai и Bi. На­пи­ши­те про­грам­му для ре­ше­ния этой за­да­чи.

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

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

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

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

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

 

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

Вход­ные дан­ные

В пер­вой стро­ке задаётся ко­ли­че­ство участ­ков трас­сы N. Во вто­рой стро­ке задаётся целое число t — время (в се­кун­дах) про­хож­де­ния каж­до­го из пе­ре­ез­дов A0B0, A1B1, …, ANBN. В каж­дой из по­сле­ду­ю­щих N строк за­пи­са­но два целых числа ai и bi, за­да­ю­щих время (в се­кун­дах) про­хож­де­ния оче­ред­но­го участ­ка на каж­дой из дорог. В пер­вой из этих строк ука­зы­ва­ет­ся время про­хож­де­ния участ­ков A0A1 и B0B1, во вто­рой — A1A2 и B1B2 и т. д.

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

3

20

320 150

200 440

300 210

Вы­ход­ные дан­ные

Про­грам­ма долж­на на­пе­ча­тать одно целое число: ми­ни­маль­но воз­мож­ное время про­хож­де­ния трас­сы (в се­кун­дах).

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

750