Задания районной олимпиады по программированию среди школьников
Тобольск, 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 в возрастающем порядке (1≤D1≤D2< …<DM≤ В+1). В последней строке записано число Е (1≤ Е ≤109). Известно, что житель заключил контракт не более чем на 107 лет.
Формат выходных данных
В выходной файл выведите через пробел два числа — номер дня недели, который выгоднее всего сделать выходным, и соответствующее количество нерабочих дней за период действия договора. Если ответов несколько, то выведите любой из них.
(20 баллов)



