Задания районной олимпиады по программированию среди школьников

Тобольск, 2006 г.

Теоретический тур

Задача № 1_1.

3

*

1

5

x

4

*

+

*

3

5

*

6

*

5

0

*

4

*

7

*

3

5

*

На доске сохранилась полустёртая запись:

Выяснить в какой системе счисления

записаны числа, восстановить запись.

(2 балла)

Задача № 1_2.

В группе 25 студентов, каждый из них знает хотя бы один из следующих языков: английский, немецкий или французский. Английский знают 10 студентов, немецкий – 13, французский – 11, английский и немецкий языки знают 4 студента, английский и французский – 3, немецкий и французский – 4. Все три языка знают 2 человека. Сколько студентов знают один французский язык?

(3 балла)

Задача № 1_3.

Три друга детства - Влад, Тимур и Юра - встретились спустя 10 лет после окончания ВУЗа. Выяснилось, что один из них стал врачом, другой - физиком, третий - юристом. Один полюбил туризм, другой - утренний бег, страсть третьего - регби. Юра сказал, что на туризм ему не хватает времени, хотя его сестра - единственный врач в семье - заядлый турист. Врач сказал, что он разделяет увлечение коллеги. Забавно, но у двоих из друзей в названиях их профессий и увлечений не встречается ни одна буква из их имен. Определите, кто чем любит заниматься в свободное время и у кого какая профессия.

(5 баллов)

Практический тур

Задача 2_1.

Три брата попросили хозяйку приготовить на ужин картофель. Пока хозяйка варила картофель, братья уснули; через час проснулся старший брат и, увидев на столе картофель, съел свою долю и опять заснул; через некоторое время проснулся второй и, не зная, что старший брат уже ел картофель, так же съел свою долю и заснул; наконец, проснулся младший брат и сделал тоже, что и старшие братья. Когда старший брат опять проснулся, то разбудил своих братьев, и тогда всё выяснилось; оставшиеся 8 картофелин поделили между собой средний и младший братья.

Сколько штук картофеля подала хозяйка?

Сколько из оставшихся 8 штук картофеля взял средний и сколько взял младший брат?

Составьте компьютерную программу решения этой задачи.

(3 балла)

Задача 2_2.

Изобразить на экране “движущийся” отрезок, траекторией которого является четырехугольник.

(Учесть, что размер отрезка должен сохраняться в углах четырехугольника).

(5 баллов)

Задача 2_3.

Задан числовой массив А(М, N). Некоторый элемент этого массива назовем седловой точкой; если он является одновременно наименьшим в своей строке и наибольшим в своём столбце. Напечатать номера строк и столбцов седловых точек, если они есть; сформировать новый массив, вычеркивая строки и столбцы «седловых точек».

(7баллов)

Задача 2_4.

Дано число 211213 – 1. Составить программу, определяющую встречаются ли среди цифр этого числа подряд две девятки. (7 баллов)

Задача 2_ 5.

Составить программу формирования всех возможных кроссвордов из следующих четырех слов: по горизонтали — СЛОВО, КРОССВОРД; по вертикали — АЛГОЛ, АВОСТ.

(10 баллов)

Задача 2_6.

Воспроизведите максимально точно на экране мони­тора изображение, приведенное на рис. 1 (используйте среду реализации по своему выбору). Окружности должны быть построены разными цветами, причем окружности с большим радиусом должен соответствовать цвет с большей длиной волны.



Рис. 1

(15 баллов)

Задача 2_7.

На планете в звездной системе Альфа Кентавра неде­ля состоит из А дней, а год — из В дней. Годы нумеру­ются последовательными натуральными числами: 1, 2, 3,... Кроме того, годы с номерами C1, С2,..., CN являют­ся високосными и состоят из (В + 1) дней. В году дни с номерами D1, D2,..., DM являются праздничными. Если праздник попадает на (В + 1)-й день года, то он отме­чается только в високосные годы. Первый день первого года является первым днем недели.

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

Требуется написать программу, которая определяет искомый день недели и вычисляет соответствующее ко­личество нерабочих дней.

Формат входных данных

Примеры

holidays. in

holidays. out

7 13

1

2

2

1 14

29

1 8

3 9

0

3

1 4 7

19

2 13

В первой строке входного файла через пробел записаны числа А и В — количество дней в неделе и в невисокосном году соответственно (1≤А≤2500, 1≤В≤10 000). Во второй строке записано число N – количество високос­ных лет, и в третьей – номера C1, С2, ..., CN високосных лет в возрастающем порядке (0≤N≤5000, 1≤С1<С2<...<CN≤107). В следующей строке число М – количе­ство праздничных дней в году, и на новой строке – D1 D2, ..., DM в возрастающем порядке (1D1≤D2< …<DMВ+1). В последней строке записано число Е (1≤ Е ≤109). Известно, что житель заключил контракт не более чем на 107 лет.

Формат выходных данных

В выходной файл выведите через пробел два числа — номер дня недели, который выгоднее всего сделать вы­ходным, и соответствующее количество нерабочих дней за период действия договора. Если ответов несколько, то выведите любой из них.

(20 баллов)