Поздравляем вас с началом первого тура!
Мы надеемся,что вы получили правила и внимательно их изучили.
Если вы зарегистрировались с опозданием, и не получили рассылку с правилами, то
ознакомиться с ними можно на
//www.olymp.vinnica.ua/i2000/rules.stml.
Задачи первого тура, как мы и обещали, несложные. Однако - не торопитесь, хорошо подумайте, протестируйте свои программы, прежде чем отправлять их на проверку.
Письма с решениями,
оформленные по правилам (!), отправляйте по адресу
olymp@olymp.vinnica.ua в любое удобное для вас время с 12 октября 2000 г. по 22 октября 2000 г. Наш робот сразу вам сообщит, получено ли ваше письмо. Если по какой-то причине ваше решение не комилируется, робот сообщит вам об этом и попробует объяснить причину. В этом случае можете отправить его првторно. Если же решение будет принято, повторные решения одной и той же задачи робот рассматривать не будет.
Мы сознательно в этом и последующих турах не планируем объявлять участникам ценность каждой задачи в баллах, чтобы не фиксировать ваше внимание на "дорогих" и "дешевых" задачах. Единственная полезная для вас информация - максимально в первом туре можно набрать 100 баллов.
Сложность заданий будет увеличиваться от тура к туру, и соответственно, сумма баллов за тур.
И еще раз не считаем лишним вас предупредить - слова Ввод> и Вывод< не вводятся и не выводятся, мы их используем для пояснения структуры примера! )
Рассылка заданий второго тура предполагается 21 октября.
Искренне желаем вам творческих успехов!
Оргкомитет и жюри олимпиады.
Задача 1 .
( предоставлена профсоюзом работников культуры )
Код задачи Illusion
Член нашего профсоюза, известный иллюзионист,
пополнил свой репертуар новым, на сей раз математическим,
фокусом. Он предлагает зрителям со сцены сельского клуба:
Загадайте 2 натуральных
числа, первое из них - четное. Первое возведите в квадрат и разделите на 4. К результату добавьте второе число. Из того, что получилось, извлеките квадратный корень. Надеюсь, что ваш результат- число целое… Если нет - начните с начала, задумав новые числа. Теперь один раз вычтите из корня половину первого числа, а второй раз
прибавьте к корню эту половину. Два полученных таким образом числа продиктуйте мне каждое отдельно, начиная с последней цифры….
После всего наш коллега с умным видом называет числа, задуманные зрителями. Пусть это сделает и ваша программа ( то есть угадает задуманные нами числа) . Мы тоже не будем предлагать ей работать с дробным значением корня.
Ввод-вывод
Вы вводите с клавиатуры в первой строке стоящие в обратном порядке цифры первого числа, а во второй строке- стоящие в обратном порядке цифры второго числа .
Вы выводите на экран два искомых числа, разделенных пробелом.
Пример:
Ввод> 71
Ввод> 52
Вывод < 8 425
(строка вывода - два искомых числа, разделенные пробелом )
Ограничения : числа не более 10000.
Задача 2
( предложена министерством обороны)
Код задачи Military
Команда новобранцев прибыла в часть. Сержант велел им выстроится в колонну
по одному для движения церимониальным маршем в баню. Новобранцы, не имея
должной выучки, выстроились не по росту, а как кому на душу пришлось.
Особенно возмутило сержанта то, что в колонне просматривались участки,
явно бросающие вызов всем уставам строевой службы - новобранцы стояли в строю
так, что вслед за низеньким находился высокорослый, за ним – пониже ростом, а
потом опять повыше, и т.д., или наоборот – вслед за высоким – пониже него,
потом опять повыше, потом – пониже… Возмущение сержанта стимулировало
концентрацию математических способностей и он тут же велел выйти из строя
тем новобранцам, которые образовали самую длинную "зубчатую" цепочку.
Сколько человек вышло из строя?
Ввод-вывод:
Вы вводите с клавиатуры в первой строке количество новобранцев, а во второй- рост каждого . Числа разделены пробелами.
Вы выводите на экран число солдат, вышедших из строя
Пример
Ввод >20
Ввод > 4 5 2 3 1 6 7 8 3 9 4 6 2 6 7 8 4 8 8 8
Вывод< 8
Ограничения
Новобранцев не более 10000, рост их измеряется натуральными числами не более 255.
Если несколько цепочек имеют максимальную длину, то из строя выходит только одна из них.
Задача 3.
(предложена участковым милиционером )
Код задачи Sheriff
В прошлом - колхозник, а теперь землевладелец Наливайко получил сертификат на владение землей. Сельсовет выдал ему схему участка. На схеме дом имел координаты в декартовой системе, а участок представлял собой окружность известного радиуса, центр которой, естественно, совпадал с положением дома. Все было б ничего, если б соседка Наливайко, знатная прачка, не имела странной привычки натягивать веревки для сушки белья невзирая ни на какие границы, привязывая концы веревки к чему угодно. Да еще одна странность была у прачки - веревки всегда были натянуты параллельно какой-либо из осей той самой системы координат. Наливайко обратился ко мне с жалобой, что веревка проходит через его землевладения. Отрезок веревки какой длинны действительно проходил через земли Наливайко, если известны координаты ее начала и конца во все той же системе координат?
Ввод-вывод : в первой строке ввода - два вещественных числа, разделенные пробелом- координаты центра окружности, во второй строке - вещественный радиус окружности, в третьей - 4 вещественных числа, разделенные пробелом, - координаты начала (х1 , y1) и конца (х2,y2) веревки. В строке вывода вы выводите на экран результат с точностью до 2-х знаков.
Пример :
Ввод > 10.0 5.0
Ввод> 5.0
Ввод > 3.0 8.0 12.0 8.0
Вывод < 6.00
Ограничения : координаты и радиус по модулю не более 1000.00
Задача 4 .
( предоставлена управлением внешней разведки )
Код задачи Spy
Шпион, давно внедрившийся в ранее вражескую, а теперь дружественную страну, использовал для передачи донесений шифровальную машинку, привезенную с собой в начале карьеры, а значит морально устаревшую . Работал сей автомат так: в каждом слове сообщения он менял гласную букву на цепочку символов, состоящую из этой самой буквы в начале, некого кодового слова и вновь этой же буквы. Простой шифр, правда? Если учесть, что машинка работала только с малыми буквами латинского алфавита, секретное донесение "i like pivo" с использованием кодирующей последовательности
"qa" на родине героя получали в виде "iqai liqaikeqae piqaivoqao". Все было прекрасно, пока машинка от старости не начала кодировать одно и то же сообщение по несколько раз. Помогите криптографам, получившим сообщение, отправленное неисправной машинкой, его прочитать.
Ввод-вывод: В первой строке вводите с клавиатуры зашифрованную последовательность, во второй - кодирующую последовательность. В строке вывода выводите на экран искомую строку.
Пример:
Ввод>
iqaiqaqaaiqai liqaiqaqaaiqaikeqaeqaqaaeqae piqaiqaqaaiqaivoqaoqaqaaoqao
Ввод> qa
Вывод> i like pivo
Ограничения : кодированная строчка не длиннее 255 символов, кодовое слово не длиннее 255 символов.
Задача 5.
Код задачи
Riddle
( предоставлена читателем популярных книг по информатике)
Я загадаю целое число из интервала [A,B]. Напишите программу, которая за минимальное число вопросов отгадает это число. Играть будем так. Я сообщаю программе числа A и B, программа выводит свою версию ответа. Если это меньше задуманного мною, я сообщу программе об этом числом -1, если больше - числом 1, а если угадано - числом 0. Так будет продолжаться, пока программа не угадает число (естественно, я буду играть честно!). Постарайтесь, чтобы ваша программа угадала число за минимальное число ходов.
Ввод-вывод : В первой строке вводите с клавиатуры два целых числа через пробел - границы диапазона. Программа на экран выводит свою версию в новой строке. С новой строки вы вводите "-1", "1" или "0" ( без кавычек). Так продолжается до того момента, пока число не будет угадано (т.е. ваш ответ "0" должен завершить работу программы).
Пример :
( я задумал число 2)
Ввод> 1 6
Вывод < 3
Ввод > 1
Вывод < 2
Ввод > 0
Ограничения :
-100000<=A<=B<=100000
|