решите задачу пожалуйста на C++ дам 50баллов
![](https://st.uroker.com/files/0c6/0c615cdadab7c8494a5ff349afeaeb68.jpg)
Ответы
Ответ:
#include <iostream>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
if (n > 100 || m > 100 || k > 100) {
cout << "Error: Input values should not exceed 100." << endl;
return 0;
}
int total_students = n + m;
int rooms_needed = (total_students + k - 1) / k; // округление вверх
int boys_per_room = (n + rooms_needed - 1) / rooms_needed; // округление вверх
int girls_per_room = (m + rooms_needed - 1) / rooms_needed; // округление вверх
while (boys_per_room + girls_per_room > k) {
rooms_needed++;
boys_per_room = (n + rooms_needed - 1) / rooms_needed; // округление вверх
girls_per_room = (m + rooms_needed - 1) / rooms_needed; // округление вверх
}
cout << rooms_needed << endl;
return 0;
}
Объяснение:
Алгоритм заключается в следующем:
Находим общее количество учеников.
Определяем, сколько комнат нужно для размещения всех учеников. Для этого сначала мы делим общее количество учеников на количество мест в комнате, а затем округляем результат вверх до целого числа.
Далее мы определяем, сколько мальчиков и девочек может разместиться в каждой комнате. Если количество мальчиков и девочек в комнате больше, чем количество мест в комнате, увеличиваем количество комнат и повторяем шаг 2 и 3, пока не будет найдено подходящее количество комнат.