Новое правило в чемпионате мира по программированию ICPC: можно использовать три компьютера. Давайте посмотрим как это повлияла на одну из сильнейших команд с Казахстана. Кирилл,
Айбар и Султан начали писать контест.
В контесте всего n задач и длится 5 часов.
Они уже оценили время которое они потратят на каждую задачу. Кирилл решает задачу с
номером i за ai минут. Айбар за bi
. Султан за ci
.
Как и всегда нужно решить как можно больше задач с меньшим штрафом.
Штраф определяется как сумма времени решения для каждой принятой задачи.
Например, если команда сдаст первую задачу на 5 минуте, а вторую на 10 минуте то штраф
будет равен 5 + 10 = 15.
Вам нужно определить какой самый лучший результат может получить команда.
а) for, так как наша переменная, которая будет управлять циклом(как принято i ) будет принимать значения от 0 до 9, если начинать цикл с 0. Мы создаем переменную result и помещаем внутри цикла следующее выражение: result += 1/(i + 1). На выходе получим результат данного выражения.
б) В данном случае, можно использовать либо for range based, где выражение цикла выглядит так for (const auto & grade : grades), либо while с условием пока не дойдем до конца списка, зависит какой вид списка мы используем. Я считаю больше подходит for.
в) Думаю for range-based, либо обычный for.
г) ответ как и в б, можно использовать либо for ranged base, либо while, если значения аргументов содержатся в массиве, то тогда for range-based. Если например, тестирование происходит с пользовательского ввода, то тогда удобнее было бы использовать while.