Задача
Ваш любимый дядя – директор фирмы, которая делает евроремонты в офисах. В связи с финансово-экономическим кризисом, дядюшка решил оптимизировать свое предприятие.
Давно ходят слухи, что бригадир в дядюшкиной фирме покупает лишнее количество стройматериалов, а остатки использует для отделки своей новой дачи. Ваш дядя заинтересовался, сколько в действительности банок краски необходимо для покраски стены в офисе длиной $L$ метров, шириной $W$ и высотой $H$, если одной банки хватает на $16$ метров квадратных, а размерами дверей и окон можно пренебречь? Заказов много, поэтому дядя попросил написать программу, которая будет все это считать.
Входные данные
В первой строке содержится количество заказов. Описание каждого заказа состоит из трех натуральных чисел $L$, $W$, $H$ — длины, ширины и высоты офиса в метрах соответственно, каждое из которых не превышает $1000$.
Выходные данные
Для каждого заказа выводится в отдельную строку одно число – количество банок краски, необходимых для окраски офиса.
Тесты
Входные данные
|
Выходные данные |
$1$ $1$ $1$ $1$ |
$1$ |
$3$ $8$ $7$ $10$ $15$ $8$ $4$ $3$ $5$ $4$ |
$19$ $12$ $4$ |
$2$ $27$ $88$ $19$ $999$ $999$ $999$ |
$274$ $249501$ |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; int main() { int r; cin >> r; for(int i = 0; i < r; ++i){ int l, w, h; cin >> l >> w >> h; int s = 2 * h * (w + l); cout << (s % 16 != 0 ? s / 16 + 1 : s / 16) << endl; } return 0; } |
Решение задачи
Рассчитаем площадь стен комнаты как сумму площадей $4$ прямоугольников: $$hw + hl + hw + hl = 2hw + 2hl = 2h \cdot (w + l)$$ Теперь, зная площадь стен, рассчитаем количество банок краски. Для этого поделим площадь стен на $16$ и округлим вверх. Для округления вверх можно использовать тернарный условный оператор: если $s$ делится нацело на $16$, то ответ будет $\displaystyle \frac{s}{16}$, в противном случае – $\displaystyle \frac{s}{16} + 1$ (деление переменной int – целочисленное). Так как в задаче необходимо обрабатывать несколько таких примеров подряд, то все вычисления взяты в цикл от $0$ до $r$ (название переменной $r$ в самой задаче не указано, оно выбрано произвольно).
Ссылки
Условие задачи на e-olymp
Код решения на ideone.com
Как-то сложно Вы закодировали округление вверх. Можно ведь просто ceil((L + W) * H / 16.0 * 2.0)?
Но оставляйте как есть.