![]() |
|
Модераторы: Alx, Fixin |
![]()
|
|
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
Задачи с недавней олимиады по информатике! С++! Кто решаит, просьба выкладывать код сюда, на всеобщее обозрение!
А вот и сами задачи: Задача A. Светофор Имя входного файла: a.in Имя выходного файла: a.out Максимальное время работы на одном тесте: 1 секунда Максимальный объем используемой памяти: 64 мегабайта Вася подошел к перекрестку и увидел, что на светофоре в этот момент загорелся красный свет. Вася залюбовался тем, как четко переключаются сигналы светофора: красный - желтый - зеленый - желтый - красный - желтый - зеленый - ... Когда в очередной раз загорелся зеленый свет, Вася решил-таки перейти дорогу. К этому моменту зеленый свет зажегся в i-ый раз. Напишите программу, которая определит, сколько раз за это время загорался красный свет (считая и тот момент, когда Вася только подошел к перекрестку) и сколько раз - желтый. Формат входных данных Во входном файле задано одно число i, задающее, в какой раз загорелся зеленый свет (1≤i≤100). Формат выходных данных В выходной файл выведите два числа. Первое - сколько раз загорался красный свет, второе - сколько раз загорался желтый. Пример a.in a.out 2 2 3 Добавлено через 23 секунды Задача B. Книга Имя входного файла: b.in Имя выходного файла: b.out Максимальное время работы на одном тесте: 1 секунда Максимальный объем используемой памяти: 64 мегабайта Оргкомитет Московской олимпиады по информатике решил издать книгу с решениями олимпиадных задач сразу на двух языках - на Паскале и на Си. При этом тексты решений на Паскале решили напечатать с одной стороны книги, а на Си - с другой стороны. Таким образом книгу стало можно читать как с начала, так и с конца, предварительно ее перевернув. Тексты решений на Паскале заняли N первых страниц, которые пронумеровали от 1 до N. А тексты на Си - M последних страниц, которые пронумеровали числами от 0 (последняя страница) до M-1. Книга состоит из отдельных листов. У листа две стороны, на каждой из которых печатается одна страница книги. При необходимости, между текстом на Паскале и текстом на Си оставляется одна пустая страница. Листы строго по порядку сшиваются и образуют книгу. Например, если N=5 и M=3 страницы книги идут в следующем порядке. Сначала страницы решений на Паскале: 1 2 3 4 5, затем - страницы решений на Си - 2 1 0. Здесь на первый лист попадают страницы номер 1 и 2 решений на Паскале, на второй - 3 и 4, на третий - страница 5 решений на Паскале и страница 2 решений на Си, и, наконец, на четвертый лист - страницы 1 и 0 решений на Си (ровно в таком порядке!). Если же, например, N=2 и M=3, то на первом листе будут напечатаны страницы 1 и 2 решений на Паскале, на втором - пустая страница и страница 2 решений на Си, на третьем - страницы 1 и 0 решений на Си. Напишите программу, которая по номеру листа определяет, решения на каком языке и какие номера страниц должны быть напечатаны на этом листе. Формат входных данных Во входном файле содержатся три числа: N, M и номер листа P (1≤N≤1000, 1≤M≤1000, 1≤P≤1000). Формат выходных данных Выходной файл должен содержать две строки. В первой строке должно идти описание той стороны листа, которая будет идти в книге раньше, во второй строке - описание второй стороны листа. Описание страницы должно состоять из заглавной английской буквы P (если это страница решения на Паскале) или C (если это страница решения на C), ровно одного пробела и номера соответствующей страницы. Если страница должна быть оставлена пустой, то в соответствующей строке должны быть напечатаны прочерки (символ минус "-") как вместо буквы, обозначающей язык решений, так и вместо номера страницы (см. примеры). Если листа с таким номером в книге не будет вообще, в обеих строках должны идти описания, соответствующие пустой странице. Примеры b.in b.out 5 3 2 P 3 P 4 5 3 3 P 5 C 2 5 3 4 C 1 C 0 2 3 2 - - С 2 2 3 10 - - - - Добавлено через 1 минуту и 8 секунд Задача C. Скидки Имя входного файла: c.in Имя выходного файла: c.out Максимальное время работы на одном тесте: 1 секунда Максимальный объем используемой памяти: 64 мегабайта В супермаркете проводится беспрецедентная акция - "Покупая два любых товара, третий получаешь бесплатно*", а внизу мелким шрифтом приписано "* - из трех выбранных вами товаров оплачиваются два наиболее дорогих". Вася, идя в супермаркет, определился, какие товары он хочет купить, и узнал, сколько они стоят. Помогите ему определить минимальную сумму денег, которую ему нужно взять с собой, чтобы в итоге стать счастливым обладателем этих товаров. Формат входных данных Во входном файле задано сначала число N (1≤N≤1000), а затем N чисел - стоимости выбранных Васей товаров. Все стоимости - натуральные числа, не превышающие 10000. Формат выходных данных В выходной файл выведите одно число - сумму денег, которую Вася должен взять с собой в супермаркет (минимально возможную). Примеры c.in c.out Пояснение 6 1 5 4 3 5 7 19 Вася сначала пройдет через кассу с товарами стоимостью 1, 3 и 4 - заплатит 7 рублей и товар стоимостью 1 получит в подарок, а затем снова зайдет в супермаркет и купит товары стоимостью 5 и 7, еще один товар стоимостью 5 получив в подарок. 5 3 15 25 8 8 51 Вася в первый заход в супермаркет купит товары стоимостью 15 и 25 рублей, в качестве подарка взяв товар стоимостью 8 рублей. А во второй заход в супермаркет купит товары стоимостью 3 и 8, не взяв никакого подарка. Добавлено через 1 минуту и 35 секунд Задача D. Муха (OFF-LINE проверка) Имя входного файла: d.in Имя выходного файла: d.out Максимальное время работы на одном тесте: 1 секунда Максимальный объем используемой памяти: 64 мегабайта Муха летит вдоль прямой. Если нанести на эту прямую координаты, то можно сказать, что в 0-й момент времени муха пролетает точку с координатой 0 и летит в положительном направлении со скоростью V. Муха может менять свою скорость, однако ускорение мухи не может по модулю превышать величины A, в частности, муха не может мгновенно остановиться. Максимальная скорость мухи не может превышать по модулю величины W. Известно, что в момент времени T по прямой ударит мухобойка, которая полностью накроет отрезок от точки C до точки D. Если муха в этот момент окажется на этом отрезке, она погибнет. Напишите программу, которая определит, есть ли у мухи шанс спастись, и если есть, то выведет, что должна муха для этого делать. Формат входных данных Во входном файле заданы числа V, W, A, T, C, D. Все числа целые. 0≤V≤W≤1000, 0≤A≤1000, 0<T≤1000, -1000000≤C≤D≤1000000. Формат выходных данных Если муха может спастись, выведите, как она должна для этого лететь. Для этого выведите последовательность команд для мухи. Количество команд не должно превышать 100. Каждая команда задается двумя числами Ti, Ai, которые обозначают, что в течение времени Ti муха должна лететь с ускорением Ai. Ti и Ai не обязаны быть целыми, Ti должны быть положительны (не могут быть равны 0), сумма всех Ti должна быть равна T с точностью до 10-6. Если, в рамках указанных ограничений, муха спастись не сможет, в выходной файл выведите одно число -1 (минус 1). Примечания Муха может сначала снизить скорость до 0, а затем полететь в обратную сторону (см. примеры). Если в момент времени T муха окажется на концах отрезка, т.е. в точке C или D, она все равно погибнет. Примеры d.in d.out Пояснение 10 10 5 1 -100 100 -1 Муха не сможет спастись 10 20 5 1 9 11 0.2 0 0.8 4 Сначала в течение времени 0.2 муха летит с постоянной скоростью 10, а затем ускоряется с ускорением 4 10 10 5 5 0 1000 4 -5 1 0 Муха сначала тормозит с ускорением -5, а затем с этим же ускорением начинает лететь в обратную сторону. Набрав скорость 10, муха продолжает лететь с ней без ускорения Это сообщение отредактировал(а) Kuvaldis - 10.1.2008, 19:15 |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
скушные какие-то задачи..
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |