СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
Информатика
Cайты, меню, вход, новости


Вариант № 7396464

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


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


Версия для печати и копирования в MS Word
Времени прошло:0:00:00
Времени осталось:3.9166666666666665:55:00
1
Задание 1 № 416

Чему равна сумма чисел 448 и 2Е16? Результат запишите в восьмеричной системе счисления.


Ответ:

2
Задание 2 № 13559

Логическая функция F задаётся выражением:

 

¬ y ∧ (x ∨ ¬ z).

 

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

 

Перем. 1Перем. 2Перем. 3Функция
?????????F
0001
0101
0111

 

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

 

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

 

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

 

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


Ответ:

3
Задание 3 № 6484

Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых приведена в таблице. (Отсутствие числа в таблице означает, что прямой дороги между пунктами нет.)

 

ABCDEF
A315
B325
C22
D5226
E25
F1565

 

Определите длину кратчайшего пути между пунктами A и F (при условии, что передвигаться можно только по построенным дорогам).


Ответ:

4
Задание 4 № 18485

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

 

Таблица 1
IDФамилия И.О.ПолГод рождения
152Павленко А. К.М1941
232Сокол Е. П.Ж1964
314Хитрук Е. А.Ж1970
323Кривич Л. П.Ж1947
343Симонян А. А.М1989
407Хитрук П. А.М1937
424Косых В. Г.М1984
468Симонян С. И.Ж1992
613Хитрук Н. П.Ж1939
760Хитрук И. П.М1968
803Сокол Л. М.Ж1988
880Косых Г. В.М2010
902Сокол М. Л.М1965
957Симонян Т. А.М2015

Таблица 2
ID РодителяID Ребенка
152314
232803
314468
323314
343957
407760
407232
424880
468957
613760
613232
760468
803880
902803


Ответ:

5
Задание 5 № 1127

Для кодирования букв А, Б, В, Г решили использовать двухразрядные последовательные двоичные числа (от 00 до 11, соответственно). Закодируйте таким образом последовательность символов ББГА и запишите полученное двоичное число в шестнадцатеричной системе счисления.


Ответ:

6
Задание 6 № 15101

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

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

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

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

 

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

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


Ответ:

7
Задание 7 № 7191

В электронной таблице значение формулы =СРЗНАЧ(B5:E5) равно 100. Чему равно значение формулы =СУММ(B5:D5), если значение ячейки E5 равно 50? Пустых ячеек в таблице нет.


Ответ:

8
Задание 8 № 3775

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

 

 

БейсикPython

DIM N, S AS INTEGER

N = 3

S = 0

WHILE N <= 26

    S = S + 6

    N = N + 1

WEND

PRINT S

n = 3

s = 0

while n <= 26:

    s += 6

    n += 1

print(s)

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

var n, s: integer;

begin

    n := 3;

    s := 0;

    while n <= 26 do

    begin

        s := s + 6;

        n := n + 1;

    end;

    writeln(s);

end.

алг

нач

    цел n, s

    n := 3

    s := 0

    нц пока n <= 26

        s := s + 6

        n := n + 1

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int n, s;

    n = 3, s = 0;

    while (n <= 26) {

        s = s + 6;

        n = n + 1;

    }

    cout << s << endl;

    return 0;

}

 


Ответ:

9
Задание 9 № 17327

Автоматическая фотокамера с 400 Кбайт видеопамяти производит растровые изображения c фиксированным разрешением и 16-цветной палитрой. Сколько цветов можно будет использовать в палитре, если увеличить видеопамять до 800 Кбайт?


Ответ:

10
Задание 10 № 3236

Все 5-буквенные слова, составленные из букв А, К, Р, У, записаны в алфавитном порядке. Вот начало списка:

 

1. ААААА

2. ААААК

3. ААААР

4. ААААУ

5. АААКА

……

 

Укажите номер первого слова, которое начинается с буквы У.


Ответ:

11
Задание 11 № 13541

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

 

БейсикPython

FUNCTION F(n)

  IF n > 2 THEN

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

  ELSE

    F = n

  END IF

END FUNCTION

 

FUNCTION G(n)

  IF n > 2 THEN

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

  ELSE

    G = 3-n

  END IF

END FUNCTION

def F(n):

    if n > 2:

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

    else: return n

def G(n):

    if n > 2:

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

    else: return 3-n

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

function F(n: integer): integer;

begin

  if n > 2 then

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

  else

      F := n;

end;

 

function G(n: integer): integer;

begin

  if n > 2 then

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

  else

      G := 3-n;

end;

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

нач

  если n > 2

    то

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

    иначе

      знач := n

  все

кон

 

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

нач

  если n > 2

    то

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

    иначе

      знач := 3-n

  все

кон

Си

int F(int n) {

    if (n > 2)

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

    else return n;

}

 

int G(int n) {

    if (n > 2)

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

    else return 3-n;

}

 

 

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


Ответ:

12
Задание 12 № 2239

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

IP-адрес: 146.212.200.55 Маска: 255.255.240.0

При записи ответа выберите из приведенных в таблице чисел 4 фрагмента четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без точек.

 

ABCDEFGH
021214624020019255255

 

Пример. Пусть искомый адрес сети 192.168.128.0 и дана таблица

 

ABCDEFGH
1281682558127017192

 

В этом случае правильный ответ будет HBAF.


Ответ:

13
Задание 13 № 6258

Для регистрации на сайте некоторой страны пользователю требуется придумать пароль. Длина пароля — ровно 11 символов. В качестве символов могут быть использованы десятичные цифры и 32 различные буквы местного алфавита, причём все буквы используются в двух начертаниях: как строчные, так и прописные (регистр буквы имеет значение!). Под хранение каждого такого пароля на компьютере отводится одинаковое и минимально возможное целое количество байтов. При этом используется посимвольное кодирование, и все символы кодируются одинаковым и минимально возможным количеством битов. Определите объём памяти, который используется для хранения 50 паролей. (Ответ дайте в байтах.)


Ответ:

14
Задание 14 № 7925

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a, b), где a, b — целые числа. Эта команда перемещает Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b). Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на (2, −3) переместит Чертёжника в точку (6, −1).

Цикл

ПОВТОРИ число РАЗ

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

КОНЕЦ ПОВТОРИ

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

 

Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и смещения в первой из повторяемых команд неизвестны):

 

НАЧАЛО

сместиться на (5, 2)

ПОВТОРИ … РАЗ

сместиться на (…, …)

сместиться на (−1, −2)

КОНЕЦ ПОВТОРИ

сместиться на (−25, −12)

КОНЕЦ

 

После выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ … РАЗ»?.


Ответ:

15
Задание 15 № 4727

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


Ответ:

16
Задание 16 № 7927

Решите уравнение 121x + 110 = 1019.


Ответ:

17
Задание 17 № 8105

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

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

 

ЗапросНайдено страниц, тыс.
Математика & Информатика330
Математика & Физика270
Математика & (Информатика | Физика)520

 

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

 

Математика & Информатика & Физика?

 

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


Ответ:

18
Задание 18 № 23916

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

 

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

 

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


Ответ:

19
Задание 19 № 18595

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

 

 

БейсикPython

s = 0

FOR i = 0 TO 8

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

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

    ELSE

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

    END IF

    s = s + A(i)

NEXT i

s = 0

for i in range(0,9):

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

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

    else:

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

    s += A[i]

 

 

 

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

s := 0;

for i:=0 to 8 do begin

    if A[i] < A[i+1]

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

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

    s := s + A[i]

end;

 

s := 0

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

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

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

    иначе A[i] := A[i] - A[i+1]

    все

    s := s + A[i]

кц

С++

s = 0;

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

    if (A[i] < A[i+1])

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

    else

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

    s += A[i];

}

 


Ответ:

20
Задание 20 № 7931

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

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 1

WHILE X > 0

    A = A+1

    B = B * (X MOD 100)

    X = X\100

WEND

PRINT A

PRINT B

x = int(input())

a, b = 0, 1

while x > 0:

    a = a + 1

    b = b * (x%100)

    x = x//100

print(a)

print(b)

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

var x, a, b: integer;

begin

    readln(x);

    a := 0; b := 1;

    while x > 0 do

        begin

            a := a+1;

            b := b*(x mod 100);

            x := x div 100;

        end;

    writeln(a); write(b);

end.

алг

нач

цел x, a, b

ввод x

a:=0; b:=1

нц пока x > 0

    a := a+1

    b := b*mod(x,100)

    x := div(x,100)

кц

вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int x, a, b;

    cin >> x;

    a = 0; b = 1;

    while (x > 0) {

        a = a+1;

        b = b * (x%100);

        x = x/100;

    }

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

}

 


Ответ:

21
Задание 21 № 15806

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

 

 

БейсикPython

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

A = −9: B = 9

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−1) * (x−3) + 7

END FUNCTION

def F(x):

    return 2 * (x−1) * (x−3) + 7

 

a = −9; b = 9

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: integer;

 

function F(x: integer): integer;

begin

    f := 2 * (x−1) * (x−3) + 7;

end;

 

begin

    a := −9; b := 9;

    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 := −9; b := 9

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

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

        если F(t) > R

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

        все

    кц

    вывод M + R

кон

 

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

нач

    знач := 2 * (x−1) * (x−3) + 7

кон

 

С++

#include <iostream>

using namespace std;

long f(int x) {

    return 2 * (x−1) * (x−3) + 7;

}

 

int main()

{

    int a, b, t, M, R;

    a = −9; b = 9;

    M = a; R = F(a);

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

        if (F(t) > R) {

            M = t; R = F(t);

        }

    }

    cout << M + R;

    return 0;

}

 


Ответ:

22
Задание 22 № 18503

Исполнитель РазДваТри преобразует число на экране.

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

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

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

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

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

Программа для исполнителя РазДваТри — это последовательность команд.

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

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 312 при исходном числе 4 траектория будет состоять из чисел 12, 13, 15.


Ответ:

23
Задание 23 № 11252

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

 

((x1 → x2) → (x3 → x4)) ∧ ((x3 → x4) → (x5 → x6)) ∧ ((x5 → x6) → (x7 → x8 )) = 1

 

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


Ответ:

24
Задание 24 № 3609

Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (х, у — действительные числа) и определяет принадлежность точки заштрихованной области. Программист торопился и написал программу неправильно.

 

ПаскальБейсик
var х, у: real;

begin

readln(х, у) ;

if у >= −х * х then

if у >= −х − 2 then

if у <= 0 then

write('принадлежит')

else

write('не принадлежит')

end.

INPUT x, у

IF у >= -x * x THEN

IF у >= -x - 2 THEN

IF у <= 0 THEN

PRINT "принадлежит"

ELSE

PRINT "не принадлежит"

ENDIF

ENDIF

ENDIF

END

Си++Алгоритмический язык
int main(void)

{

float х, у;

cin >> x >> y;

if (y >= -x * x)

if (y >= -x - 2)

if (y <= 0)

cout << "принадлежит";

else

cout << "не принадлежит";

}

алг

нач

вещ х, у

ввод х, у

если у >= -х * х то

если y >= -х - 2 то

если у <= 0 то

вывод 'принадлежит'

иначе

вывод 'не принадлежит'

все

все

все

кон

Python

x = float(input())

y = float(input())

if у >= -x * x:

    if у >= -x - 2:

        if у <= 0:

            print("принадлежит")

        else:

            print("не принадлежит")

 

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

1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет", если условие не выполнится, "—" (прочерк), если условие не будет проверяться, "не изв.", если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите "не изв". В последнем столбце укажите "да" или "нет".

 

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

 

ОбластьУсловие 1

(у >= −х*х)

Условие 2

(у >= −х−2)

Условие 3

(у <= 0)

Программа выведетОбласть обрабатывается

верно

A
В
С
D
Е
F
G
Н

Решения заданий с развернутым ответом не проверяются автоматически.
На следующей странице вам будет предложено проверить их самостоятельно.

25
Задание 25 № 3610

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные значения. С клавиатуры вводится целое число X. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит наименьший номер элемента массива, равного X, или сообщение, что такого элемента нет.

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

 

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

const

N = 30;

var

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

i, j, x: integer;

begin

for i := 1 to N do

readln(a[i]);

readln(x);

...

end.

N = 30

DIM A (N) AS INTEGER

DIM I, J, X AS INTEGER

FOR I = 1 TO N

INPUT A (I)

NEXT I

INPUT X

...

END

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

#include <iostream>

using namespace std;

#define N 30

int main(void)

{int a[N];

int i, j, x;

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

cin >> a[i];

cin >> x;

}

алг

нач

цел N = 30

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

цел i, j, х

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

ввод a [i]

кц

ввод X

...

кон

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

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

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

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

Вводит переменную X.

...

Python

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

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

a = []

n = 30

for i in range(0, n):

    a.append(int(input()))

x = int(input())

 

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


Решения заданий с развернутым ответом не проверяются автоматически.
На следующей странице вам будет предложено проверить их самостоятельно.

26
Задание 26 № 15963

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

 

добавить в кучу один камень или

увеличить количество камней в куче в два раза.

 

Например, имея кучу из 10 камней, за один ход можно получить кучу из 11 или из 20 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

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

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

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

Выполните следующие задания.

Задание 1.

а) Назовите все значения S, при которых Петя может выиграть первым ходом, причём у Пети есть ровно один выигрывающий ход.

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

Задание 2.

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

Задание 3.

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

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

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


Решения заданий с развернутым ответом не проверяются автоматически.
На следующей странице вам будет предложено проверить их самостоятельно.

27
Задание 27 № 13584

Дан набор из N целых положительных чисел. Необходимо выбрать из набора произвольное количество чисел так, чтобы их сумма была как можно больше и при этом не делилась на 8. В ответе нужно указать количество выбранных чисел и их сумму, сами числа выводить не надо. Если получить нужную сумму невозможно, считается, что выбрано 0 чисел и их сумма равна 0.

Напишите эффективную по времени и по памяти программу для решения этой задачи.

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

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

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

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

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

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

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

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

В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000).

В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000.

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

3

1

2

5

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

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

2 7

В данном случае из предложенного набора нужно выбрать два числа (2 и 5), их сумма равна 7.


Решения заданий с развернутым ответом не проверяются автоматически.
На следующей странице вам будет предложено проверить их самостоятельно.
Времени прошло:0:00:00
Времени осталось:3.9166666666666665:55:00
Завершить тестирование, свериться с ответами, увидеть решения.