• Предмет: Информатика
  • Автор: jsjsbebjrjirjdbx
  • Вопрос задан 5 месяцев назад

решите задачу пожалуйста на C++ дам 50баллов​

Приложения:

Famouse: Перепиши текстом, плохо видно

Ответы

Ответ дал: Famouse
0

Ответ:

#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, пока не будет найдено подходящее количество комнат.

Вас заинтересует