Вы находитесь на странице: 1из 10

1

Задания первого этапа республиканской олимпиады


по учебному предмету «Информатика»
2019/2020 учебный год
5-11 класс

Задача 1 Перевод строки ( 40 б)


Пример ввода:         Пример ввода:
1465 14a5
Пример вывода: Пример вывода:
x : longint; x : longint;
s : string; s : string;
_ : integer; _ : integer;
s=1465 s=14a5
val(s,x,_); val(s,x,_);
x=1465 x=0
_=0 _=3
Задача 2 обнулить последний минимальный ( 40 б)
Обнулить последний минимальный элемент в массиве из N элементов. Вывести полученный
массив.
Формат ввода: Пример ввода:
N – количество элементов (N <= 10) 7
a1 a2 ... aN – элементы массива 30 15 25 15 40 29 21
Формат вывода: Пример вывода:
b1 b2 ... bN - массив с заменённым минимальным 30 15 25 0 40 29 21

Задача 3 Левый столбец периметра клумбы (40 б)


Коля воодушевленно высаживает цветы на своей клумбе. Закончив работу, он составил карту
клумбы в виде двумерного массива из N (2<=N<=25) строк и M (2<=M<=10) столбцов. Число
на позиции i,j означает, какой именно цветок туда высажен. В частности, число 9 означает
самый любимый Колин цветок - гладиолус. Теперь Коля хочет узнать, удалось ли ему
засадить гладиолусами по периметру квадрат со стороной L, с левым верхним углом в
позиции (i0,j0).
Помогите ему - выведите левый столбец периметра клумбы без учёта его элементов в верхней
и нижней строке
Форматввода: Пример ввода:
NM 45
a[1,1] a[1,2] ... a[1,M] 3 9 9 9 9
a[2,1] a[2,2] ... a[2,M] 2 5 1 4 9
... 19939
a[N,1] a[N,2] ... 39991
a[N,M] 412
L i0 j0
Формат вывода: Пример вывода:
a[i0+1,j0] 5
a[i0+2,j0] 9
...
a[i0+L-2,j0] Пояснения:
Нужно было проверить на квадрат со стороной 4
с левым верхним углом в позиции 1 2.
2

Левый столбец имеет номер 2. Без учёта верхней и нижней строк это
элементы
a[2,2]
a[3,2]

Задача 4 Сложные этапы (40 б)


Пётр Васечкин наметил новый туристический маршрут в 5 этапов: от дома к старому дереву,
от старого дерева к заброшенному колодцу, от заброшенного колодца к сломанному люку, от
сломанного люка к пожарной лестнице и, наконец, от пожарной лестницы к дому своего
лучшего друга - Васи Петечкина. Он знает координаты всех отмеченных на маршруте мест.
Теперь он хочет подсчитать длину каждого из этих этапов. Ответы выводите с тремя знаками
после точки.
Формат ввода: Пример ввода:
x1 y1 – координаты дома Петра Васечкина 0 0
x2 y2 – координаты старого дерева 01
x3 y3 – координаты заброшенного колодца 0 3
x4 y4 – координаты сломанного люка 05
x5 y5 – координаты пожарной лестницы 06
x6 y6 – координаты дома Васи Петечкина 0 7
Формат вывода: Пример вывода:
r1 - длина первого этапа 1.000
r2 - длина второго этапа 2.000
r3 - длина третьего этапа 2.000
r4 - длина четвёртого этапа 1.000
r5 - длина пятого этапа 1.000
Задача 5 Удалить символ ( 40 б)
Вы продолжаете разрабатывать текстовый редактор. Теперь надо научить его выполнять
следующее действие:

DC R C удалить символ в позиции R С


Здесь R – строка C - колонка
Внимание!
На вводе могут быть другие команды, их нужно игнорировать (выводить входные строки без
изменений). 
Форматввода: Пример ввода: Пример ввода:
n 3 3
s[1] abc abc
s[2] defg defg
... ij ij
s[n] DC 2 3 RP 2 1 3 QH
Line
Здесь n - количество строк
s[i] - строки до редактирования
Line - строка - команда на редактирование
Формат вывода: Пример вывода:
p[1] abc
p[2] deg
... ij
p[k]
- строки после редактирования
3

Задача 6 По порядку (40 б)


Даны 10 чисел. Выведите в порядке убывания k наибольших различных из них. В тестах
гарантируется наличие не менее k различных.
Формат ввода: Пример ввода:
a1 – первое число 47
a2 – второе число 23
... 50
a10 – десятое число 12
k 23
15
40
47
15
50
3
Формат вывода: Пример вывода:
n1 50
n2 47
... 40
nK

Задача 7 Город художников упрощённая (Коцур Мария 40 б)


Байттаун – самый быстрорастущий город в государстве. Многие приезжают жить в
Байттаун, потому что знают, что найдут здесь всё, что нужно для счастья. Не так давно мэр
отметил, что столица стала перенаселённой, и предложил главному архитектору Байтландии
спроектировать культурную столицу, в которой было бы комфортно жить и творить всем
людям, занимающимся искусством.
Было решено построить новый город из невысоких домиков около реки. По задумке
архитектора в городе будет 2N домиков с шириной фасада 2A1, 2A2, …, 2AN, 2AN+1, …, 2A2N,
которые будут располагаться последовательно вдоль одной улицы длины 2L, разбиваемой по
центру (на расстоянии L от начала улицы) рекой. Дома могут касаться одной из стен, но не
могут пересекаться. Ни один из домов не может стоять на реке, но может стоять на краю
берега. Все центры домов должны находиться на целочисленном расстоянии от начала улицы,
и ни один из домов не должен выходить за границы улицы. Отметим, что ширина реки не
учитывается архитектором при вычислении длины улицы.
Главный архитектор считает, что у города художников должны быть красивые
очертания. Для этого он хочет расположить дома симметрично относительно реки: центр
домика с номером N будет так же далёк от берега реки, как и центр домика с номером N+1 (от
другого берега), центр домика с номером N-1 – как центр домика с номером N+2, …, центр
домика с номером 1 – как центр домика с номером 2N. Помимо этого, он хочет, чтобы
максимум из расстояний между любыми двумя подряд стоящими домиками, расстояния от
начала улицы до 1-го домика и расстояния от 2N-го домика до конца улицы был как можно
меньше. Максимум из описанных расстояний в Байтландии называют зазором. Под
расстоянием между двумя домами он подразумевает расстояние от правой стены стоящего
слева дома до левой стены стоящего справа дома. При вычислении расстояния между
домиком с номером N и домиком с номером N+1 ширина реки не учитывается.
Задача красивой расстановки большого количества домов слишком сложная. Для начала
главный архитектор просит Вас разработать программу, которая по заданным длинам домов и
длине улицы определить, поместятся ли все домимки на улице, если их строить вплотную
один к другому.
4

Если да, вывести Yes и количество свободного пространства на улице, иначе вывести No
и размер превышения улицы домами
Входные данные
Первая строка входного файла содержит два целых чётных числа 2N, 2L (2 ≤ 2N ≤ 4 • 105,
2 ≤ 2L ≤ 2 • 109) – количество домиков и длина улицы, соответственно.
Вторая строка содержит 2N целых чётных чисел 2Ai (2 ≤ 2Ai ≤ 109) – размеры домиков.
Числа разделены одиночными пробелами.
Выходные данные
Yes и количество свободного пространства на улице или вывести No и размер
превышения улицы домами

input.txt output.txt
2 20 Yes 12
26
4 16 Yes 0
2626
4 15 No 1
2626

Задача 8 Баллоны с водой


Имеется 20 баллонов. Вначале баллоны могут быть ориентированы "вверх" либо "вниз".
Требуется сориентировать все баллоны "вниз". Однако «переворачивать" можно только по три
баллона вместе - средний, а также баллоны слева и справа от него. Если баллон крайний
(самый левый или самый правый) – то переворачиваются только два баллона.
По заданному начальному состоянию баллонов (1 - вверх, 0 - вниз) определите минимальное
количество "переворачиваний", которое требуется, чтобы перевести все баллоны в состояние
"вниз".
Формат ввода

Строка 1: 20 целых чисел, разделенных одиночными пробелами

Формат вывода
Строка 1: Минимальное количество переворачиваний баллонов,
которое требуется чтобы перевести их в состояние "вниз", то есть в 0.
Для заданных входных состояний всегда это можно сделать.

Пример ввода (файл bowls.in):


00111001101100000000

Пример вывода (файл bowls.out):


3

Пояснения

Переворачивая баллоны 4 9 и 11 мы получаем требуемый результат


0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 [начальное состояние]
0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 [после переворачивания 4]
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 [после переворачивания 9]
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [после переворачивания 11]

Задача 9 Прямоугольники (40 баллов)


5

Вам даны N прямоугольников с центром в начале координат и сторонами параллельными


осям координат. Каждый прямоугольник уникально идентифицируется своей шириной (по оси
X) и своей высотой (по оси Y). Рисунок ниже показывает пример из первого теста:

Каждый прямоугольник раскрашен определённым цветом. Требуется узнать площадь


закрашенной части бумаги. Другими словами, требуется узнать, сколько квадратиков
принадлежат хотя бы одному прямоугольнику.
Ввод
Первая строка ввода содержит целое число N (1<=N<=1 000 000), количество
прямоугольников. 
Каждая из последующих N строк содержит чётные числа X и Y (2<=X,Y<=10^7), размеры
(ширина и высота соответственно), соответствующих прямоугольников.
Вывод
Первая и единственная строка вывода должна содержать требуемую площадь.
Примеры
Ввод
3
82
44
26
Вывод
28

Задача 10 Старая комната (40 баллов)


Коля рылся в старых вещах на чердаке и нашёл старую карту. После долгих часов её изучения,
он разобрался во всех символах, которые были 
нанесены на неё. Оказалось, что это карта большой квадратной комнаты, которая разделена на
n*n равных квадратов. В каждом квадратике
может быть проход, стенка или дверь. Каждый квадратик он пометил цифрой от 0 до 3. Где
"0"-проход, "1"-стенка, "2"-дверь входа в комнату, 
"3" - дверь выхода из комнаты. По комнате можно перемещаться в 4 направления (вверх, вниз,
влево и вправо) и в квадратик можно перейти
только если этот квадратик не стенка. Причём в комнату есть множество входов и всегда
только один выход. Коле стало интересно, сколько
входных дверей, из которых можно добраться до выхода
Формат ввода:
6

Первая строка содержит одно целое число N (1<=N<=50), которое указывает размер комнаты.
Далее следует описание комнаты,N строк 
по N цифр в каждой.
Формат вывода:
Одно число - количество входных дверей, из которых можно добраться до выхода.
Пример ввода: Пример вывода:
5 3
21203
11011
21012
01010
00000
(40 б)
Задача 11 Дороги вокруг фермы (40 баллов)
Коровы Фермера Джона решили исследовать территорию вокруг фермы. Изначально, все N (1
<= N <= 1,000,000,000) коров движутся вниз по дороге в одной большой группе. Когда они
встречают развилку на дороге, иногда они предпочитают разбиться на две меньшие
(непустые) группы, каждая из которых движется далее вниз по одной из дорог. Когда какая-то
из групп вновь добирается до развилки, она снова разбивается на две группы и т.д.
Коровы избрали оригинальный способ разбиваться на группы: если они могут разделиться на
две группы так, что количества коров в этих группах различаются ровно на K (1 <= K <=
1000), тогда они делятся. А иначе прекращают движение вперед.
Предполагая, что всегда есть новая развилка на дороге, вычислите финальное количество
групп коров.
ФОРМАТ ВВОДА:
* Строка 1: Два разделенных пробелом целых числа: N K
ФОРМАТ ВЫВОДА:
* Строка 1: Одно целое число, представляющее получившееся
количество групп коров
ПРИМЕР ВВОДА (файл ratf.in):
62
ПРИМЕР ВЫВОДА (файл ratf.out):
3
ПОЯСНЕНИЯ:
Всего есть 6 коров и разность количеств в группах равна 2.
Всего есть 3 финальных группы (с 2, 1, и 3 коровами в них).
6
/\
2 4
/\
1 3
Задача 12 Суммы (40 баллов)
Любое целое число N>0 можно представить в виде суммы натуральных слагаемых, каждое из
которых является степенью числа 2. Суммы, различающиеся лишь порядком слагаемых,
считаются одинаковыми.
Найти К – число способов, которыми можно представить число N в виде суммы натуральных
слагаемых, каждое из которых является степенью числа 2.
Например,
7 = 4+2+1
= 4+1+1+1
= 2+2+2+1
7

= 2+2+1+1+1
= 2+1+1+1+1+1
= 1+1+1+1+1+1+1
и K=6.
Ограничения: N<=1000
Ввод из текстового файла SUM.IN:
N
Вывод в текстовый файл SUM.OUT:
К
Пример входных и выходных данных
SUM.IN SUM.OUT
 
132 31196
(Суммы 40 баллов)

Задача 13 Ладья и конь(40 баллов)


Игра ведётся на шахматной доске размером N*M (N - количество горизонталей, M -
количество вертикалей). В игре участвуют ладья и конь. Первой ходит ладья. Ладья
выигрывает, если ей удаётся сбить коня. В противном случае выигрывает конь. Требуется
написать программу, которая для заданных начальных позиций ладьи и коня определяет
сможет ли выиграть ладья, и если да, то за какое минимальное количество ходов. Конь ходит
так, чтобы максимально затруднить выигрыш ладьи. Конь может также сбить ладью.
Ограничения:
  2<= N <= 8,2 <= M <= 8, конь ставится в такую начальную позицию из которой он может
сделать по крайней мере один ход(например при доске 3*3 конь не может оказаться на поле
b2, т.к. любой ход из этой позиции выводит за пределы доски).
Формат ввода:
  Первая строка: N и M.
  Вторая строка: позиции ладьи и коня(Например b1 c2, означает, что ладья стоит на второй
вертикали и первой горизонтали, конь стоит на третьей вертикали и второй
горизонтали.Вертикали обозначаются латинскими буквами от a до h, горизонтали
обозначаются цифрами от 1 до 8.).
Формат вывода:
  Минимальное число ходов, нужное ладье, чтобы сбить коня, если это возможно, иначе
должен быть напечатан 0.
Пример ввода: Пример вывода:
33 3
b1 c2
Пояснения к примеру:
  Конь ловится за три хода:
  1. Лb1-b3 Кc2-а1 (1… Кc2-a3 2. Лb3:a3X)
  2. Лb3-b2 Кa1-b3 (2… Кa1-c2 3. Лb2:c2X)
  3. Лb2:b3X
Задача 14 Собаковедение
В текущем учебном году в Байтландской гимназии № 2015 ввели экспериментальный
факультатив по скобковеденью, главной темой которого являются правильные скобочные
последовательности.
Формально правильную скобочную последовательность можно описать следующими
правилами:
        пустая последовательность «» является правильной скобочной
последовательностью;
        если «A» и «B» – правильные скобочные последовательности, то и
последовательность «АВ», полученная конкатенацией (сцеплением) одной
8

последовательности к другой является правильной скобочной


последовательностью;
        если «А» – правильная скобочная последовательность, то и «(А)», т.е.
последовательность, взятая в скобки, также является правильной скобочной
последовательностью;
        других правильных скобочных последовательностей не существует.
К примеру, последовательности «()», «(())()» и «(()())» являются правильными
скобочными последовательностями, а «)», «(((()(» и «(()» – нет.

Завтра K-й раз проводится занятие факультатива.


Преподаватель планирует предложить задание на вычисление числа способов выбора
ровно K подряд идущих скобок из заданной (не обязательно правильной) скобочной
последовательности так, чтобы полученная последовательность являлась правильной
скобочной последовательностью. На предыдущих занятиях вы хорошо усвоили учебный
материал и хотите потренироваться, чтобы на факультативном занятии успешно справиться с
заданием преподавателя.
Входные данные
Первая строка входного файла содержит два разделенных пробелом целых
числа N и K (1 ≤ K ≤ N ≤ 105) – длину скобочной последовательности преподавателя и
порядковый номер завтрашнего занятия.
Вторая строка входного файла содержит последовательность из N символов, каждый из
которых открывающая '(' (ASCII 40) либо закрывающая скобка ')' (ASCII 41), – скобочная
последовательность преподавателя.
Выходные данные
Единственная строка выходного файла должна содержать одно целое число – количество
способов, которыми можно выбрать ровно K подряд идущих скобок для получения
правильной скобочной последовательности.
 
input.txt output.txt Пояснение
52 1 Существует 4 способа выбора 2 подряд идущих скобок:
(())( «((», «()», «))» и «)(». Из них только  одна «()» является
правильной скобочной последовательностью.
64 2 Если начинать с первой либо с третьей скобки, то можно
()()() получить такую правильную скобочную
последовательность: «()()».
 
Задача 15 Автобусные остановки (40 баллов)
В городе Yong-In планируется создать сеть автобусных маршрутов с N автобусными
остановками. Каждая остановка находится на некотором перекрестке. Поскольку Yong-In -
современный город, на карте он представлен улицами с квадратными кварталами одинакового
размера. Две из N остановок выбираются пересадочными станциями H1 и H2, которые будут
соединены друг с другом прямым автобусным маршрутом, а каждая из оставшихся N - 2
остановок будет непосредственно соединена маршрутом с одной пересадочной станцией
H1 или H2 (но не с обеими), и не соединена ни с одной из оставшихся остановок.
9

Расстояние между любыми двумя остановками определяется как длина кратчайшего пути по
улицам города. Это означает, что если остановка представлена парой координат (x, y), то
расстояние между двумя остановками (x1, y1) и (x2, y2) будет равно |x1-x2|+ |y1-y2|. Если
остановки A и B соединены с одной и той же пересадочной станцией, например H1, то длина
пути из A в B является суммой расстояний от A до H1 и от от H1 до B. Если автобусные
остановки A и B соединены с разными пересадочными станциями, например A с H1 и B с H2,
то длина пути из A в B является суммой расстояний от A до H1, от H1 до H2 и от H2 до B.
Проектировщики города Yong-In хотят быть уверены, что любой житель города сможет
добраться до любой точки города достаточно быстро. Поэтому проектировщики хотят сделать
пересадочными станциями такие две остановки, чтобы в полученной сети автобусных
маршрутов максимальная длина пути между любыми двумя остановками была минимальной.
Вариант P выбора пересадочных станций и соединения остановок с ними будет лучше
варианта Q, если максимальная длина пути между любыми двумя остановками в варианте P
будет меньше, чем в варианте Q. Ваша задача - написать программу вычисления
максимальной длины пути между любыми двумя остановками для наилучшего варианта P
выбора пересадочных станций и соединения остановок с ними.
ВВОД :
Ваша программа должна читать стандартный ввод. Первая строка содержит положительное
целое число N (2 ≤ N ≤ 500) - количество остановок. Каждая из оставшихся N строк содержит
пару чисел x и y - координаты автобусной остановки. Координаты x и y - положительные
целые числа ≤ 5000. Никакие две остановки не могут быть представлены одной и той же парой
координат.
ВЫВОД:
Ваша программа должна записать в стандартный вывод одну строку с единственным
положительным числом - минимальной возможной длиной максимального пути между
остановками.
Пример 1:
ввод: вывод:
6 20
17
16 6
12 4
44
11
11 1

Пример 2:
ввод: вывод:
7 25
79
10 9
53
11
72
15 6
17 7

Рисунки ниже показывают сети автобусных маршрутов для приведенных примеров входных
данных. Если в Примере 1 выбрать остановки 3 и 4 как пересадочные станции, то самый
длинный путь будет или между остановками 2 и 5, или между остановками 2 и 1. Поскольку
лучшего варианта выбрать пересадочные станции нет, ответом будет 20.
10

Для Примера 2, если в качестве пересадочных станций выбраны остановки 5 и 6, то самый


длинный путь будет между остановками 2 и 7. Поскольку лучших вариантов нет, ответом
будет 25.

Оценить