Пример выхода
36.754383146489694 0.0 6.928203230275509
16. Починка забора [Топкодер, раунд 325, дивизион 1, уровень 1]. Вам необходимо починить старый забор. Забор состоит из набора досок, некоторые из которых выломаны. Доски пронумерованы слева направо в возрастающем порядке. Починка всех досок от i - ой до j - ой (i < j) стоит . Целые доски обозначаются символом ‘.’ (точка), сломанные – ‘X’. Для уменьшения общей стоимости ремонта иногда выгодно ремонтировать даже целые доски. Необходимо найти минимальную стоимость ремонта всего забора. Класс: FenceRepairing Метод: double calculateCost(vector<string> boards) Ограничения: boards содержит от 1 до 50 элементов, boards[i] содержит от 1 до 50 символов ‘.’ И ‘X’. Вход. Массив строк boards. Объединив их, получим состояние забора, который подлежит ремонту. Выход. Минимальная стоимость ремонта всего забора. Пример входа
Пример выхода 3.0 2.732050807568877 9.591663046625438
17. Расширенное счастливое число [Топкодер, раунд 334, дивизион 2, уровень 3; дивизион 1, уровень 2]. Дано натуральное число n. Возведем в k - ую степень каждую его цифру и просуммируем полученные результаты. Обозначим результат через S k (n). Например, S2(65) = 62 + 52 = 61. Построим последовательность n, S k (n), S k (S k (n)), …. Счастьем числа n по отношению к k будем называть наименьшее число в этой последовательности. По заданным числам a, b и k следует найти счастье каждого числа между a и b включительно по отношению к k и вернуть их сумму. Класс: ExtendedHappyNumbers Метод: long long calcTheSum(int a, int b, int k) Ограничения: 1 £ a, b £ 106, 1 £ k £ 6. Вход. Три числа a, b, k. Выход. Найти счастье каждого числа между a и b включительно по отношению к k и вернуть их сумму. Пример входа
Пример выхода
18. Быстрый почтальон [Топкодер, раунд 346, дивизион 2, уровень 3]. Почтальон должен разнести письма по домам, расположенным на одной улице. Адреса представляются собой расстояния от левого конца улицы до домов. Известно граничное время, в течение которого следует доставить каждое письмо в каждый дом. Скорость почтальона 1 метр в секунду, доставка писем производится моментально, как только почтальон поравняется с домом. Необходимо определить, сможет ли почтальон доставить все письма. В случае утвердительного ответа следует найти наименьшее время, за которое он сможет это сделать. Класс: FastPostman Метод: int minTime(vector<int> address, vector<int> maxTime, int initialPos) Ограничения: address и maxTime содержат одинаковое количество элементов, не большее 50, 1 £ address[i], initialPos £ 106, 1 £ maxTime[i] £ 109, 1 £ maxTime[i] £ 109. Вход. Массив адресов домов address и массив maxTime, содержащий граничное время разноса соответствующих писем. Переменная initialPos содержит начальное положение почтальона. Выход. Наименьшее время, за которое почтальон сможет разнести все письма по указанным адресам с учетом граничного времени. Если он не сможет это сделать, то вернуть -1.
|