ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 41 (Часть 2)
При выполнении заданий с кратким ответом впишите в поле для ответа цифру, которая соответствует номеру правильного ответа, или число, слово, последовательность букв (слов) или цифр. Ответ следует записывать без пробелов и каких-либо дополнительных символов. Дробную часть отделяйте от целой десятичной запятой. Единицы измерений писать не нужно.
Если вариант задан учителем, вы можете вписать или загрузить в систему ответы к заданиям с развернутым ответом. Учитель увидит результаты выполнения заданий с кратким ответом и сможет оценить загруженные ответы к заданиям с развернутым ответом. Выставленные учителем баллы отобразятся в вашей статистике.
Версия для печати и копирования в MS Word
Ученик написал программу, определяющую, какой степенью числа 4 является введенное. Например, для 16 это 2, так как 42 = 16. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.
| Бейсик | Python |
|---|---|
DIM N, K AS INTEGER INPUT N K = 0 WHILE K MOD 4 = 0 N = N \ 4 K = K + 1 WEND IF N <= 4 THEN PRINT K ELSE PRINT "Не существует" END IF END
| n = int(input()) k = 0 while k%4 == 0: n = n // 4 k = k + 1 if n <= 4: print(k) else: print("Не существует")
|
| Паскаль | Алгоритмический язык |
var n, k: integer; begin read(n); k := 0; while k mod 4 = 0 do begin n := n div 4; k := k + 1; end; if n <= 4 then writeln(k) else writeln('Не существует') end.
| алг нач цел n, k ввод n k := 0 нц пока mod(k, 4)=0 n := div(n,4) k := k + 1 кц если n <= 4 то вывод k иначе вывод "Не существует" все кон |
| Си++ | |
#include <iostream> using namespace std; int main(){ int n, k; cin >> n; k = 0; while (k%4 == 0) { n = n / 4; k = k + 1; } if (n <= 4) cout « k « endl; else cout << "Не существует"; return 0; }
| |
Последовательно выполните следующее.
1. Что выдаст программа при вводе числа 64?
2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.
3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом.
На следующей странице вам будет предложено проверить их самостоятельно.
Дан массив из 2000 элементов. Хорошей парой называется пара элементов, из которых оба оканчиваются на 9, при этом элементы являются соседями. Посчитайте количество хороших пар. Каждый элемент по модулю не превышает 30 000. В ответе укажите кусок программы на месте многоточия. Разрешено не использовать некоторые из инициализированных переменных, но запрещено пользоваться переменными, не указанными ниже.
| Бейсик | Python |
|---|---|
CONST N = 2000 DIM A (1 TO N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END
| // допускается также использовать // две целочисленные переменные // j и k a = [] n = 2000 for i in range(0, n): a.append(int(input())) …
|
| Паскаль | Алгоритмический язык |
const N = 2000; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); … end.
| алг нач цел N = 2000 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
#include #define N 2000 int main() { int a[N]; int i, j, k; for (i = 0; i < N; i++) cin >> a[i]; … return 0; } | |
На следующей странице вам будет предложено проверить их самостоятельно.
Два игрока, Паша и Валя, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра заканчивается, когда в куче не меньше 42 камней.
При этом, если число камней в куче не превышает 74, то побеждает игрок, сделавший последний ход, иначе выигрывает его оппонент. В начальный момент в куче было S камней; 1 ≤ S ≤ 41.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Выполните следующие задания. Во всех случаях обосновывайте свой ответ.
Задание 1
а) Укажите все такие значения числа S, при которых Паша может выиграть в один ход. Опишите его стратегию.
б) У кого есть выигрышная стратегия при S = 38, 39, 40?
Задание 2
Кто из игроков имеет выигрышную стратегию при S = 19, 20?
Задание 3
Кто из игроков имеет выигрышную стратегию при S = 18?
В каждом случае опишите выигрышную стратегию. В задании 3 постройте дерево игры или таблицу, где ребрами являются сделанные ходы, а узлами - позиции камней.
На следующей странице вам будет предложено проверить их самостоятельно.
На вход даны пары чисел. Нужно выбрать из каждой пары по одному числу так, чтобы сумма всех выбранных чисел не была кратна 6 и при этом была минимально возможной. Напишите программу, выводящую такую сумму на экран. Если же ее невозможно получить, выведите 0.
Вам предлагается два задания, связанных с этой задачей: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору. Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание — 0 баллов.
Задание Б является усложнённым вариантом задания А, оно содержит дополнительные требования к программе.
А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве. Перед программой укажите версию языка программирования.
Обязательно укажите, что программа является решением задания А. Максимальная оценка за выполнение задания А — 2 балла.
Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик). Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.
Перед программой укажите версию языка программирования и кратко опишите использованный алгоритм.
Обязательно укажите, что программа является решением задания Б. Максимальная оценка за правильную программу, эффективную по времени и по памяти, — 4 балла.
Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.
Напоминаем! Не забудьте указать, к какому заданию относится каждая из представленных Вами программ.
Задача А. Количество пар известно заранее и равно 6. Числа не превышают 30 000.
Пример входных данных:
5 4
3 2
1 1
18 3
11 12
2 5
Пример выходных данных:
23
Задача Б. Количество пар N не известно заранее и может принимать значения 2 <= N <= 200 000. На вход подается сначала количество пар, затем сами пары. Числа по модулю не превышают 30 000.
Пример входных данных:
6
5 4
3 2
1 1
18 3
11 12
2 5
Пример выходных данных:
23
На следующей странице вам будет предложено проверить их самостоятельно.