Текст муниципальной (районной/городской) олимпиады по информатике

2014–2015 учебного года

 

1.      «Конфеты » – 100 баллов

В конце каждого урока физкультуры в классе учитель проводит забег и дает победителю забега четыре конфеты, а всем остальным ученикам – по одной. К концу четверти Петя заслужил a конфет, Ваня – b, а Толя – c (a ≤ 100, b ≤ 100, c ≤ 100). Известно, что один из них пропустил ровно один урок физкультуры, участвуя в олимпиаде по математике, остальные же уроков не пропускали. Кто из детей пропустил урок?

Исходный файл task1.in содержит в единственной строке три натуральных числа, количества конфет, полученных мальчиками Петей, Ваней и Толей. Соседние числа разделены ровно одним пробелом. Выходной файл task1.out должен в первой строке содержать имя ученика, который пропустил урок.

Ваша программа должна

·   прочитать из файла task1.in число конфет, полученных Петей, Ваней и Толей;

·   найти и вывести в файл task1.out  имя ученика, который пропустил урок.

Пример:      

            task1.in

task1.out 

29 32 25

Толя

 

 

2.      «Числа» – 100 баллов

 

Из соседних цифр натурального числа n (n < 109) без изменения порядка их следования образуют число, не содержащее ведущих нулей. Сколько разных чисел (включая n и однозначные числа) при этом могут получиться?

Исходный файл task2.in содержит в единственной строке натуральное число n. Выходной файл task2.out должен содержать натуральное число – ответ.

Ваша программа должна

·   прочитать из файла task2.in исходное число n;

·   подсчитать и вывести task2.out количество чисел, которые могут получиться.

Пример:      

            task2.in

task2.out 

101

4

Примечание. Имеются в виду числа 101, 10, 0, 1.

 

 

3.      «Пять делителей» – 100 баллов.

 

 

Найти сумму целых чисел из промежутка от 1 до n (n≤2000000000), у каждого из которых ровно 5 делителей, включая 1 и само число.

Исходный файл task3.in содержит в единственной строке натуральное число n. Выходной файл task3.out должен содержать натуральное число – ответ, возможно очень длинное.

Ваша программа должна

·   прочитать из файла task3.in исходное число n;

·   подсчитать и вывести в файл task3.out сумму чисел из промежутка от 1 до n, которые имеют ровно 5 делителей.

Пример:      

            task3.in

task3.out 

2014

722

 

 

 

 

 

Примечание. Для всех программ ограничение по времени прохождения одного теста — 1 секунда.


4. «Вирус» – 100 баллов

Некоторые v (0<v≤10) клеток квадратного поля  n×n (n≤1000) заражены вирусом. За каждый ход вирус заражает 4 соседние с ним клетки (от угловых клеток заражаются – 2 клетки, от прилежащих к границе поля – 3 клетки). Положение вирусов задано координатами (x, y) клеток на поле. Определите, за какое минимальное количество ходов будет заражено все поле.

Исходный файл task4.in содержит в первой строке два натуральных числа n и v, разделенных ровно одним пробелом. Каждая из последующих v строк содержит два разделенных пробелом числа – координаты x и y клетки поля, зараженной вирусом. Выходной файл task4.out должен содержать натуральное число – ответ, возможно очень длинное.

Ваша программа должна

·   прочитать из файла task4.in размер поля n и число вирусов v;

·   прочитать из файла координаты клеток x и y, зараженных вирусом;

·   подсчитать и вывести в файл task4.out за какое минимальное количество ходов будет заражено все поле.

Пример:      

            task4.in

task4.out 

6 1

2 3

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечание. Для всех программ ограничение по времени прохождения одного теста — 1 секунда.