Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
[Положение] [Расписание] [Архив] [Содержание] [Задачи] [Рейтинг]

Задачи олимпиады "Пробный тур командной олимпиады"

Задача A. Зарплата

(Время: 1 сек. Память: 16 Мб)

В отделе работают 3 сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.

Входные данные

В единственной строке входного файла INPUT.TXT записаны размеры зарплат всех сотрудников через пробел. Каждая заработная плата – это натуральное число, не превышающее 105.

Выходные данные

В выходной файл OUTPUT.TXT необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.

Примеры

INPUT.TXTOUTPUT.TXT
1100 500 1000900
236 11 2025

Задача B. Таймер

(Время: 1 сек. Память: 16 Мб)

Таймер - это часы, которые умеют подавать звуковой сигнал по прошествии некоторого периода времени. Напишите программу, которая определяет, когда должен быть подан звуковой сигнал.

Входные данные

В первой строке входного файла INPUT.TXT записано текущее время в формате ЧЧ:ММ:СС (с ведущими нулями). При этом оно удовлетворяет ограничениям: ЧЧ - от 00 до 23, ММ и СС - от 00 до 60.

Во второй строке записан интервал времени, который должен быть измерен. Интервал записывается в формате Ч:М:С (где Ч, М и С - от 0 до 109, без ведущих нулей). Дополнительно если Ч=0 (или Ч=0 и М=0), то они могут быть опущены. Например, 100:60 на самом деле означает 100 минут 60 секунд, что то же самое, что 101:0 или 1:41:0. А 42 обозначает 42 секунды. 100:100:100 - 100 часов, 100 минут, 100 секунд, что то же самое, что 101:41:40.

Выходные данные

В выходной файл OUTPUT.TXT выведите в формате ЧЧ:ММ:СС время, во сколько прозвучит звуковой сигнал. При этом если сигнал прозвучит не в текущие сутки, то дальше должна следовать запись +<кол во> days. Например, если сигнал прозвучит на следующий день – то +1 days.

Примеры

INPUT.TXTOUTPUT.TXT
101:01:01
48:0:0
01:01:01+2 days
201:01:01
58:119
02:01:00
323:59:59
1
00:00:00+1 days

Задача C. День программиста

(Время: 1 сек. Память: 16 Мб)

День программиста отмечается в 255-й день года (при этом 1 января считается нулевым днем). Требуется написать программу, которая определит дату (месяц и число григорианского календаря), на которую приходится День программиста в заданном году.

В григорианском календаре високосным является:

  • год, номер которого делится нацело на 400
  • год, номер которого делится на 4, но не делится на 100

Входные данные

В единственной строке входного файла INPUT.TXT записано целое число от 1 до 9999 включительно, которое обозначает номер года нашей эры.

Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести дату Дня программиста в формате DD/MM/YYYY, где DD — число, MM — номер месяца (01 — январь, 02 — февраль, ..., 12 — декабрь), YYYY — год в десятичной записи.

Примеры

INPUT.TXTOUTPUT.TXT
1200012/09/2000
2200913/09/2009

Задача D. Волейбол

(Время: 1 сек. Память: 16 Мб)

Партия в волейболе выигрывается командой, которая первой набирает 25 очков с преимуществом минимум в два очка. В случае равного счета 24-24, игра продолжается до достижения преимущества в 2 очка (26-24; 27-25).

Две сыгранные партии, закончившиеся с одинаковым счетом, будем считать разными, если строки, в которых выписан порядок набора очков командами, не равны.

Комитет по проведению соревнований по волейболу заинтересовался, количеством различных партий, заканчивающихся счетом 25:23. Их оказалось 16123801841550.

Определить, сколько существует различных партий, заканчивающихся заданным счетом.

Входные данные

Во входном файле INPUT.TXT указан конечный счет в партии (то есть такой, при котором победа в партии отдаётся одной из команд). Также известно, что ни одна из команд не набрала более 40 очков.

Выходные данные

В выходной файл OUTPUT.TXT выведите количество всевозможных партий, которые заканчиваются данным счетом.

Примеры

INPUT.TXTOUTPUT.TXT
125:121251677700
220:251761039350070
325:2316123801841550

Задача E. Азартный Шрэк

(Время: 1 сек. Память: 16 Мб)

Как-то раз Шрек решил посетить казино. Не будучи заядлым любителем азартных игр, Шрек обнаружил, что он не знает правил ни одной из игр, доступных в казино. Недолго думая, Шрек решил все-таки поиграть. Его взор привлекла игра с довольно незамысловатыми правилами.

На игровом столе лежат N карточек. На каждой карточке написано целое положительное число. Игра проходит между игроком и крупье. Карточки лежат на столе числами вниз. Игра заключается в том, что игрок открывает ровно N/2 карточек. Сумма всех чисел, написанных на карточках открытых игроком, называется “суммой игрока”. Следующим ходом крупье открывает оставшиеся N/2 карточек. Сумма всех чисел, написанных на карточках открытых крупье, называется “суммой крупье”. Выигрыш игрока определяется разностью чисел между “суммой игрока” и “суммой крупье”. Очевидно, что полученная разность может быть отрицательным числом. Это свидетельствует о том, что игрок проиграл и должен казино соответствующую сумму.

Все бы ничего, но Шрек обладает способностью видеть надписи сквозь бумагу любой плотности. Ваша задача определить максимальную сумму выигрыша, которую может получить Шрек с учетом того, что он видит все числа, написанные на карточках.

Входные данные

Первая строка входного файла INPUT.TXT содержит одно четное натуральное число N (2 ≤ N ≤ 100). Вторая строка входного файла содержит ровно N чисел Ai(1 ≤ Ai ≤ 106) – числа, написанные на игральных карточках. Все числа в строке разделяются одиночными пробелами, Ai – число, написанное на i-й карточке. Карточки нумеруются последовательно, начиная с единицы.

Выходные данные

Единственная строка выходного файла OUTPUT.TXT должна содержать ровно одно целое число – максимальный выигрыш, который может получить Шрек с учетом своей уникальной способности видеть числа, написанные на карточках.

Примеры

INPUT.TXTOUTPUT.TXT
12
1 3
2
24
3 1 8 100
104

Задача F. Неглухой телефон

(Время: 1 сек. Память: 16 Мб)

Возможно, что Вы когда то играли в игру «Глухой телефон», либо слышали о ней. В этой игре участникам приходится передавать информацию друг другу различными способами: словесно, образно, бывает даже приходится писать левой рукой текст, который другой участник команды должен будет прочитать. Так же известно, что практически никогда передаваемая информация не доходит до конечного адресата. Обозначим за Fi(x) функцию, которая преобразует текст передаваемой информации x в ту, которую получит участник i+1 от участника i. Тогда последний n-й участник получит данные y, которые будут выражаться следующей формулой:

y = Fn-1(Fn-2(…F2(F1(x))))

Но Вам необходимо исключить какие-либо внешние факторы, которые могут исказить исходную информацию и Вы должны реализовать программу «неглухой телефон», которая сможет безошибочно доставлять исходные данные, т.е. в нашем случае функция Fi(x) = x для всех i от 1 до n-1.

Входные данные

В единственной строке входного файла INPUT.TXT записано натуральное число от 1 до 100.

Выходные данные

В выходной файл OUTPUT.TXT нужно вывести в точности то же число, которое задано во входном файле.

Пример

INPUT.TXTOUTPUT.TXT
155

Задача G. TopCoder

(Время: 1 сек. Память: 16 Мб)

Некоторые из вас, наверное, слышали о сайте http://www.topcoder.com, на котором часто проводятся различные соревнования по программированию.

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

Ваша задача заключается в том, чтобы написать программу, которая по итоговым результатам в каждой комнате выводила бы суммарные итоговые результаты.

Входные данные

Первая строка входного файла INPUT.TXT содержит целое число n (1 ≤ n ≤ 100) - число комнат. Далее следуют n описаний итоговых результатов в комнатах.

Результаты в i-ой комнате заданы в следующем формате. Первая строка содержит целое число ni (1 ≤ ni ≤ 20)- количество участников в i-ой комнате. Следующие ni строк содержат информацию о выступлениях участников. j+1-ая строка описания результатов в i-ой комнате содержит информацию об участнике, занявшем в i-ой комнате j-ое место: разделенные одним пробелом вещественное число totalij (-5000 ≤ totalij ≤ 10000) и строку nameij - соответственно количество набранных участником баллов и его имя. Имя участника имеет длину от 1 до 25 и может содержать только буквы английского алфавита, цифры и символ подчеркивания. При этом первый символ имени не является цифрой. Все вещественные числа заданы с двумя знаками после десятичной точки.

Гарантируется, что в каждой комнате участники упорядочены по невозрастанию набранных ими баллов.

Выходные данные

На первой строке выходного файла OUTPUT.TXT выведите N - суммарное число участников. На следующих N строках выведите информацию о выступлении участников. (k+1)-ая строка описания суммарных результатов должна содержать информацию об участнике, занявшем k-ое место: разделенные одним пробелом вещественное число totalk с двумя знаками после десятичной точки и строку namek - соответственно количество набранных участником баллов и его имя.

Не забудьте, что участники должны быть упорядочены по невозрастанию набранных ими баллов.

Пример

INPUT.TXTOUTPUT.TXT
12
6
909.94 Savior
439.51 tywok
130.52 LimberG
0.00 BryanChen
0.00 angsa
-75.00 The_Hedgehog
5
867.15 Ying
448.12 natori
195.32 aubergineanode
0.00 shalinmangar
-25.00 Excilus
11
909.94 Savior
867.15 Ying
448.12 natori
439.51 tywok
195.32 aubergineanode
130.52 LimberG
0.00 angsa
0.00 shalinmangar
0.00 BryanChen
-25.00 Excilus
-75.00 The_Hedgehog

Задача H. Ковер

(Время: 1 сек. Память: 16 Мб)

Драгоценности короля Людовика XIII хранятся в специальных ларцах. Все ларцы имеют одинаковые размеры 40 дюймов длины и 8 дюймов ширины.

Король приказал изготовить ковер и составить на него все драгоценности. При этом придворные должны соблюдать следующие условия:

  • ларцы можно ставить один на другой, но не более 5 штук в стопке;
  • стопки ларцов можно ставить только правильными ровными рядами;
  • все ларцы ставятся на прямоугольный ковер таким образом, чтобы не оставалось пустого места, где можно было бы разместить еще одну стопку;
  • от длинной стороны ларца до другого ларца или края ковра должно быть свободное пространство в 2 дюйма;
  • от короткой стороны ларца до другого ларца или до края ковра должно быть свободное пространство в 4 дюйма.

Людовик XIII хочет, чтобы ковер был оптимальных размеров:

  1. Площадь ковра должна быть минимальной;
  2. Если есть несколько ковров оптимальной площади, выбрать среди них тот, который больше похож на квадрат (т.е. имеет минимальную разницу длины и ширины).

Ваша задача - вычислить размеры такого ковра.

На рисунке показан пример оптимального размещения на ковре 29 ларцов. Размеры такого ковра: 92 дюйма длины и 32 ширины.

Входные данные

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 1012) – количество ларцов.

Выходные данные

В выходной файл OUTPUT.TXT выведите ответ в формате W X H = S, где W - длина ковра, H – ширина ковра, S – площадь ковра.

Примеры

INPUT.TXTOUTPUT.TXT
1148 X 12 = 576
22992 X 32 = 2944
343136 X 32 = 4352


Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483