5

Click here to load reader

Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

  • Upload
    tranbao

  • View
    227

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

XVI Олимпиада среди школьников г. Петрозаводска по Информатике http://media.karelia.ru/~olimp/

Организаторы: Комитет по образованию, Петрозаводский государственный университет Спонсоры Олимпиады: компания «Ноутис», компания "Сириус", корпорация «Крафтвей», LandMark, Диаско, компания ОФИСКЛАБ, магазин «Экслибрис», Карельский Региональный Центр ФИО, Администрация г. Петрозаводска, РЦ НИТ ПетрГУ, сеть магазинов "Домашний компьютер"

Теоретический тур (7 задач) Количество баллов за задачу не зависит от количества участников, решивших ее, и составляет

100 баллов за задачу. Жюри оценивает решение в процентах, например, наполовину решенная за-дача оценивается в 50% от возможного количества баллов, то есть 50.

Если в задаче требуется предложить алгоритм, то записать его можно по-разному. Лучше все-го словесно (по-русски) или на псевдокоде, но можно и блок-схемой или на языке программиро-вания, но это не желательно. Главное, чтобы были пояснения или комментарии. Если алгоритм записан крайне неясно, он не засчитывается. Удачи!

Задача 1. “Застрявший лучик” Исследователь решил провести физический эксперимент – поймать лучик света. Для этого он

подошел к зеркалу, висящему на стене, и взял в руку другое зеркальце строго параллельно перво-му на расстоянии 1 метра. После этого он щелкнул зажигалкой между этими двумя зеркалами и стал придвигать зеркальце к зеркалу со скоростью 1 метр в секунду. Предложить простой алго-ритм, рассчитывающий, сколько километров пролетел лучик, отражаясь от зеркала к зеркалу, пока они не соприкоснулись?

Задача 2. “2^2005” Проверить, поместится ли число 22005 в десятичной записи в один экран (не строку) с тексто-

вым режимом 80х25.

Задача 3. “Агент 007” В олимпиаде по информатике приняли участие N школьников. Работы были проверены, каж-

дый занял свое место в списке победителей, и не было одинаковых результатов – то есть каждое место оказалось за одним участником. Результаты с распределением мест были вывешены и все участники узнали свое занятое место. Но в ночь перед вручением призов какой-то Агент 007 вы-крал все результаты и распределение мест и даже стер информацию в компьютере. И нет ничего удивительного, что на вручение призов пришли уже N+1 школьник. Тут же был составлен прону-мерованный список фамилий и занятых мест по их словам. Теперь жюри должно определить, ка-кие два участника претендуют на одно место, чтобы провести дальнейшее расследование. В жюри оказались грамотные ребята и придумали эффективный алгоритм поиска двух участников с оди-наковым местом. Каждый участник в списке просматривался один раз, то есть было не более N+1 заглядываний в массив. Массив не изменялся, дополнительный не создавался. Придумайте такой алгоритм и Вы.

Page 2: Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

XVI Олимпиада среди школьников г. Петрозаводска по Информатике http://media.karelia.ru/~olimp/

Организаторы: Комитет по образованию, Петрозаводский государственный университет Спонсоры Олимпиады: компания «Ноутис», компания "Сириус", корпорация «Крафтвей», LandMark, Диаско, компания ОФИСКЛАБ, магазин «Экслибрис», Карельский Региональный Центр ФИО, Администрация г. Петрозаводска, РЦ НИТ ПетрГУ, сеть магазинов "Домашний компьютер"

Задача 4. “Снайпер” Попробуйте свои силы в компьютерной игре «Снайпер»! Компьютер загадал точку на плоско-

сти с целыми координатами, и Вы должны ее угадать. Вы делаете ход, называя свою точку с це-лыми координатами. Компьютер сообщает вещественное число – расстояние до загаданной точки. За какое гарантированное минимальное количество ходов можно попасть в загаданную точку? Предложите оптимизированный алгоритм, позволяющий иногда попасть в нее даже за меньшее число ходов.

Задача 5. “Кузнечик” В одной стране жил-был волшебный кузнечик, умеющий прыгать на любое расстояние. А ко-

гда он изучил тему «числовые последовательности», то решил прыгать по дороге с нумерованны-ми клетками по придуманному им правилу: 1 2 4 7 11 16 22 29 и так далее, дальше продолжи-те сами. А другой кузнечик решил подкараулить его в какой-нибудь клетке N, чтобы не дать уска-кать в бесконечность. Помогите ему, предложите алгоритм, проверяющий, попадет ли первый кузнечик в клетку N?

Задача 6. “GPRS или тарелка” Как известно, Интернет днем, бывает, работает очень медленно, так как очень уж много поя-

вилось клиентов у нас в городе. И один не очень богатый человек решил выбрать, как еще можно подключиться к Интернету, минуя провайдеров города. Причем как можно дешевле, сроком на 5 лет и скачивая в день 10 мегабайт. Он узнал о трех вариантах, помогите ему сделать выбор:

1) GPRS. Придется купить сотовый телефон за 6 тыс. руб., но цена 1 мегабайта 15 руб. 2) Соединиться по межгороду с Москвой. Придется купить модем за 500 руб., но 1 минута

стоит 4 руб., скорость скачивания 3 килобита в секунду, а абонентская плата 300 руб. в месяц. 3) Купить спутниковую тарелку для приема данных из Интернета. Для отправки запросов в

Интернет будет использоваться тот же межгород с Москвой в течение всего сеанса связи. Тарелка стоит 20 тыс. руб., данные принимаются со скоростью 2 мегабита в секунду с абонентской платой тоже 300 руб. в месяц.

Найти самый экономичный вариант и сумму, которую этот человек потратит за 5 лет.

Задача 7. “Непонятное” Определить, что делает алгоритм:

На Бейсике На Паскале 10 IF A(I) > B(J) THEN I=I+1 : GOTO 10 20 IF B(J) > C(K) THEN J=J+1 : GOTO 10 30 IF C(K) > A(I) THEN K=K+1 : GOTO 10

10: if A[i] > B[j] then begin i:=i+1; GOTO 10; end if B[j] > C[k] then begin j:=j+1; GOTO 10; end if C[k] > A[i] then begin k:=k+1; GOTO 10; end

Page 3: Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

XVI Олимпиада среди школьников г. Петрозаводска по Информатике http://media.karelia.ru/~olimp/

Организаторы: Комитет по образованию, Петрозаводский государственный университет Спонсоры Олимпиады: компания «Ноутис», компания "Сириус", корпорация «Крафтвей», LandMark, Диаско, компания ОФИСКЛАБ, магазин «Экслибрис», Карельский Региональный Центр ФИО, Администрация г. Петрозаводска, РЦ НИТ ПетрГУ, сеть магазинов "Домашний компьютер"

Практический тур (7 задач) Поддерживаемые языки программирования: ПАСКАЛЬ (bp), СИ (bc) или БЕЙСИК (qb). При

написании программ настоятельно рекомендуется следовать следующим правилам:

Файлы следует сохранять в указанном Вам каталоге, лучше войти туда и, находясь там, запус-кать программы bp, bc, qb.

Имена файлам программ с решениями задач давать как РЕГНОМ_НОМЗАД.РАСШ, например 23_2.pas, где 23 – номер участника, 2 – номер практического задания, .pas – расширение файла.

Советуем регулярно сохранять файлы, чтобы не потерять их в случае зависания компьютера.

Вводимые числа помещаются в переменные без переполнения.

Чтение данных производится с клавиатуры (без вывода подсказок) в формате, указанном в ус-ловии задачи.

Выводить результат на экран в том формате, который указан в условии. Дополнительные со-общения выводить запрещено.

При проверке решений на сервере жюри использует перенаправление потоков ввода/вывода. Например, если программа называется 21_1.pas, то Вы можете протестировать ее так: 21_1.exe < имяфайла.txt В результате программа считает данные из файла имяфайла.txt и выведет ответ на экран. Этот метод тестирования годится только для скомпилированных программ на Си и Паскале.

Задача 1. “Домашний кинотеатр” Во время школьных каникул Петя решил посмотреть все фильмы, которые у него есть на ком-

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

Сначала вводится число N – количество фильмов (1 ≤ N ≤ 100), затем следует N чисел – про-должительность каждого из фильмов в минутах. Нет ни одного фильма, который шел бы более 4 часов. Ваша задача вывести 3 числа – число дней, часов и минут, которые понадобятся для про-смотра всех фильмов Пример входных данных: 5 89 122 203 156 188

Пример выходных данных: 0 12 38

Задача 2. “Печатное дело” В типографии Петрозаводского университета недавно напечатали новый сборник олимпиад-

ных задач. Один из практикантов подвел статистику и выяснил, что для нумерации всех страниц сборника было использовано M цифр (1 ≤ M ≤ 30000). Требуется узнать, какой же номер был на последней странице, или же эти M цифр не могли быть использованы для нумерации страниц. Вводится число M, Ваша задача – вывести номер последней страницы или ответ «нет». Пример входных данных: 21

Пример выходных данных: 15

Page 4: Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

XVI Олимпиада среди школьников г. Петрозаводска по Информатике http://media.karelia.ru/~olimp/

Организаторы: Комитет по образованию, Петрозаводский государственный университет Спонсоры Олимпиады: компания «Ноутис», компания "Сириус", корпорация «Крафтвей», LandMark, Диаско, компания ОФИСКЛАБ, магазин «Экслибрис», Карельский Региональный Центр ФИО, Администрация г. Петрозаводска, РЦ НИТ ПетрГУ, сеть магазинов "Домашний компьютер"

Задача 3. “Ёлки-палки!” Дети перед Новым Годом решили вырастить большую ёлку. Они посадили её К-го декабря.

Ёлка оказалась достаточно странной и росла очень быстро. Уже на следующий день появился ствол. Ещё через день от ствола отошли первые две ветки. В каждый следующий день от каждой существующей ветки и от ствола отходило ровно по 2 ветки. 31 декабря дети стали наряжать ёлку. На вершину ствола они нацепили звезду, а на все ветки повесили по 1 игрушке. Каждая игрушка стоит по N рублей. На сколько рублей дети разорили своих родителей?

Вводится два числа 19<=К<=31 и 1<=N<=2005. Ваша задача вывести единственное число – суммарную стоимость игрушек

Пример входных данных: 28 21

Пример выходных данных: 168

Задача 4. “Треугольник из круга” Из круга какого наименьшего радиуса можно вырезать треугольник со сторонами a, b, c? Вам вводятся в одной строке через пробел три числа: a, b, c, не превосходящие 1000. Выведите

одно число – значение радиуса с тремя знаками после десятичной точки. Пример входных данных: 2 3 3

Пример выходных данных: 4.000

Задача 5. “Дырки в кубе” Куб состоит из N3 прозрачных и непрозрачных элементарных кубиков. Ваша задача – опреде-

лить, сколько имеется сквозных квадратных просветов размера 1x1 в кубе. В первой строке вво-дится одно число N ≤ 10. Далее следуют N матриц, описывающих слои куба. Каждый элемент матрицы равен либо 0 (прозрачный кубик), либо 1 (непрозрачный). Выведите одно число – коли-чество просветов в кубе. Пример входных данных: 4 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1

Пример выходных данных: 3

Page 5: Задания XVI городской олимпиады школьников г. Петрозаводска по информатике

XVI Олимпиада среди школьников г. Петрозаводска по Информатике http://media.karelia.ru/~olimp/

Организаторы: Комитет по образованию, Петрозаводский государственный университет Спонсоры Олимпиады: компания «Ноутис», компания "Сириус", корпорация «Крафтвей», LandMark, Диаско, компания ОФИСКЛАБ, магазин «Экслибрис», Карельский Региональный Центр ФИО, Администрация г. Петрозаводска, РЦ НИТ ПетрГУ, сеть магазинов "Домашний компьютер"

Задача 6. “Странное поздравление” Один странный студент (возможно, спамер) решил разослать по электронной почте всем сво-

им знакомым поздравление с Новым годом. Если в обычной открытке номер года можно прочи-тать однозначно, то тут число 2005 можно было прочитать различными способами. Ваша задача определить, сколькими различными способами можно прочитать число 2005 в поздравлении. Спо-собы, отличающиеся положением хотя бы одной цифры, считаются различными. Вам вводится поздравление, которое представляет собой строку, состоящую не более чем из 200 символов.

Вывести нужно единственное число – количество способов. Гарантируется, что ответ не более чем 1000000000. Пример входных данных: С новым 22000 годом 055

Пример выходных данных: 24

Задача 7. “Агрессивные ладьи” На шахматной доске размером q*r стоит много ладей. Несмотря на то, что все эти ладьи одно-

го цвета (или все белые или все чёрные), они все очень агрессивные и поэтому хотят взять друг друга. Но если никакая ладья не находится под боем, то все они в безопасности. Один хулиган вы-резал из доски несколько клеток, в результате чего ладьям стало сложней передвигаться. Они мо-гут ходить по горизонтали и вертикали на сколько угодно клеток, но если встречают на своём пути испорченную клетку, то дальше идти не могут. Следовательно, ладьи, стоящие на одной линии, не бьют друг друга, если между ними есть вырезанная клетка. Вам даны размеры доски (два числа, не превосходящие 100), а также описание доски, где 0 на соответствующей позиции означает, что клетка нормальная, а 1 – испорченная. Необходимо определить, сколько агрессивных ладей мак-симально можно поставить на доску, так чтобы ни одна из них не находилась под ударом. Пример входных данных: 3 5 0 1 0 0 1 0 1 0 1 1 1 0 1 0 0

Пример выходных данных: 5