Олимпиады по программированию

olympiads.ru

Олимпиады прошлых лет
2020/21
2019/20
2018/19
2017/18
2016/17
2015/16
2014/15
2013/14
2012/13
2011/12
2010/11
2009/10
2008/09
2007/08
2006/07

IV открытая олимпиада школьников по программированию (2009/10)
Доска объявлений олимпиады
Информация об олимпиаде
Заключительный этап
Информация о заключительном этапе
Список приглашенных
Результаты заключительного этапа
Задачи, тесты
Персональные странички участников
Предварительное раписание
Система оценки решений на заключительном этапе
Информация для иногородних участников
Планируемое размещение иногородних
Как добраться
Заочный этап
Задачи, тесты
Регистрация
1 тур
Персональная страничка участника
Текущие результаты
2 тур
Персональная страничка участника
Текущие результаты
Примеры реализации ввода-вывода на разных языках
FAQ по работе с тестирующей системой
Связаться с оргкомитетом

Олимпиада проводится при поддержке Московского физико-технического института, Компьютерной компании НИКС, Компании Yandex

Информационная поддержка:
журнал "Мир ПК"

IV Открытая олимпиада школьников по программированию, 2009/10 учебный год

Задача D. Карточки в метро

Имя входного файла: d.in
Имя выходного файла: d.out
Максимальное время работы на одном тесте: 1 секунда
Максимальный объем используемой памяти: 64 мегабайта

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

Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.) Кол-во поездок Стоимость (руб.)
1 22 19 362 37 586.13 55 804.38
2 44 20 380 38 598.25 56 816.5
3 64.33 21 392.13 39 610.38 57 828.63
4 84.67 22 404.25 40 622.5 58 840.75
5 105 23 416.38 41 634.63 59 852.88
6 124 24 428.5 42 646.75 60 865
7 143 25 440.63 43 658.88 61 863.5
8 162 26 452.75 44 671 62 862
9 181 27 464.88 45 683.13 63 860.5
10 200 28 477 46 695.25 64 859
11 218 29 489.13 47 707.38 65 857.5
12 236 30 501.25 48 719.5 66 856
13 254 31 513.38 49 731.63 67 854.5
14 272 32 525.5 50 743.75 68 853
15 290 33 537.63 51 755.88 69 851.5
16 308 34 549.75 52 768 70 850
17 326 35 561.88 53 780.13

18 344 36 574 54 792.25

При совершении более 70 поездок с карточки списывается 850 рублей за 70 поездок, и по 15.71 за каждую поездку начиная с 71-й. Кроме того, если за месяц по карточке был совершен хотя бы один проход, то списывается банковская комиссия в размере 10 рублей (независимо от числа проходов), если же проходов по карте не было, то комиссия не списывается.

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

Кроме того, они заметили, что в некоторых случаях бывает выгодно совершать лишние проходы по карточке (например, если по карточке за месяц совершено 69 проходов, то надо сделать 70-й - списанная сумма в этом случае окажется меньше).

Известно, что в наступающем месяце Вася собирается сделать A самостоятельных поездок, Петя - B самостоятельных поездок, и еще С поездок они сделают вместе (то есть всего они сделают A+B+2C проходов через турникеты). Напишите программу, которая по заданным числам A, B и C определит минимальную сумму, которую они могут потратить (с учетом банковских комиссий, при необходимости совершив лишние проходы через турникеты).

Формат входных данных

Вводятся целые числа A, B, C (каждое из них из диапазона от 0 до 1000).

Формат выходных данных

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

Примеры

d.in d.out Комментарий
1 1 0
64.00
По 22 рубля за одну поездку + по 10 рублей комиссии
59 0 0
860.00
Поскольку 59 поездок стоят дороже 70, то выгоднее всего сделать 11 "лишних" проходов и потратить 850+10 рублей
10 10 10
721.25
Наилучшим является вариант, когда только один из них пользуется карточкой во все их общие поездки
0 0 30
860.00
Аналогично, только одному из них (скажем, Пете) выгоднее пользоваться карточкой. Если Петя сделает еще 10 "лишних" проходов, то родители заплатят за проезд детей 850+10 рублей