Задача
На олимпиаду по информатике прибыло $n$ команд, каждая из которых состоит из $a_i$ мальчиков и $b_i$ девочек $(1 ≤ i ≤ n)$. Для проживания имеются одинаковые комнаты по $m$ мест в каждой. Какое наименшее количество комнат достаточно для размещения участников олимпиады, если мальчиков с девочками селить вместе запрещено?
Входные данные
Первая строка содержит числа $n$ и $m$. Каждая следующая из $n$ строк содержит пару чисел $a_i$ , $b_i$ $(1 ≤ i ≤ n)$. Все числовые значения целые неотрицательные и не превышают $100$.
Выходные данные
Вывести наименьшее необходимое количество комнат.
Тесты
№ | Входные данные | Выходные данные |
1 | 2 3 2 1 3 2 |
3 |
2 | 3 5 5 8 2 3 6 1 |
6 |
3 | 2 2 1 1 1 3 |
3 |
4 | 4 2 1 3 5 1 2 7 3 1 |
12 |
5 | 7 2 5 6 3 4 2 5 1 3 9 3 8 7 6 4 |
33 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <cmath> using namespace std; int main() { int n, m, a, b, k = 0, l = 0; cin >> n >> m; while (n--) { cin >> a >> b; k += a; l += b; } cout << (k + m - 1) / m + (l + m - 1) / m ; return 0; } |
Решение задачи
Для решения задачи найдём общее количество мальчиков и девочек, затем по отдельности посчитаем в каком количестве комнат они поместятся, но когда мы целочисленно делим количество детей на вместимость одной комнаты, мы определяем какое количество комнат будет заполнено полностью. Но, если количество детей не кратно количеству комнат, то полученный ответ должен быть на единицу больше. Для этого к количеству детей добавим ещё ровно столько, сколько нужно для того, чтобы ответ стал больше на единицу, то есть $m$, но на один меньше, чтобы при количестве детей кратном ответ был прежний. А после сложим полученные значения.
Аня, у вас проблема с отступами, в частности, строки 12 и 13 на одном уровне со строками цикла, чего быть не должно.
Спасибо,исправила.
У вас номер задачи в заголовке указан с ошибкой.
Опишите подробнее формулу определения количества комнат.
Спасибо, описала.
Анна, извините, я могу вас попросить добавить ссылку на решенную задачу на еолимп? Обычно в публикациях люди размещают ссылки, подтверждающие, что это сделали именно они.
Анна, ваша ссылка «Код программы на e-olymp» почему-то приводит на совершенно другую задачу «Пересечение отрезков». Возможно, стоит это исправить.
Спасибо, не заметила.
Попрошу отступы делать 4 пробелами, так читабельней, ну или хотя бы 2 пробелами, а то 1 вообще не смотрится никак.
Хорошо, учту.
Много мелких ошибок. Честно хотел сам исправить, но если Вам уже двое написали про отступы, а они никак не выходят… А по ссылкам вообще каша вместо отступов… Придется Вам внимательно ознакомиться с этой статьей википедии. Завтра будем беседовать на эту тему.
— Вас просили дать в пояснении формулу для вычисления числа комнат. Не получилось? Нашли как в latex кодировать округление в большую сторону?
— «наименьшее» пишется с мягким знаком.
— Пробелы перед запятыми не ставятся.
— «но» означает противопоставление предыдущему. В первый раз Вы его поставили вместо точки.
Хорошее и понятное объяснение.
Молодец.