Open In App

Minimize rooms with K seats to accommodate N girls and M boys

Given three positive integers N, M, and K, the task is to find the minimum number of rooms required to accommodate all students if there are N girls and M boys, and each room has K seats. It is not allowed for a boy and a girl to stay in the same room.

Examples:



Input: N = 13, M = 7, K = 2
Output: 11
Explanation: Room required for girls = 7 (2 + 2 + 2 + 2 + 2 + 2 + 1) Room required for boys = 4 (2 + 2 + 2 + 1)

Input: N = 5, M = 5, K = 3
Output: 4
Explanation: Rooms required for girls = 2 (3 + 2) Room required for boys = 2 (3 + 2). So, we output total seats 2 + 2 = 4



Approach: This can be solved with the following idea:

This can be solved by mathematical observation. Calculating rooms required for boys and girls separately.

Steps involved in the implementation of code:

Below is the implementation of the code:




// C++ Implementation
#include <iostream>
using namespace std;
 
// Function to calculate rooms required
int totalRooms(int n, int m, int k)
{
 
    int count = 0;
 
    // For girls
    count += (n / k);
 
    // Extra space required
    if (n % k != 0) {
        count++;
    }
 
    // For boys
    count += (m / k);
 
    // Extra space required
    if (m % k != 0) {
        count++;
    }
 
    return count;
}
 
// Driver code
int main()
{
 
    int n = 13;
    int m = 7;
    int k = 2;
 
    // Function call
    cout << totalRooms(n, m, k);
    return 0;
}




import java.util.*;
 
class Main {
    public static void main(String[] args)
    {
        int n = 13;
        int m = 7;
        int k = 2;
 
        // Function to calculate rooms required
        int count = 0;
 
        // For girls
        count += (n / k);
 
        // Extra space required
        if (n % k != 0) {
            count++;
        }
 
        // For boys
        count += (m / k);
 
        // Extra space required
        if (m % k != 0) {
            count++;
        }
 
        // Print the total number of rooms required
        System.out.println(count);
    }
}




n = 13 # n=girl
m = 7 # m=boy
k = 2 # k=number of seats in each room
 
count = 0 # declearing count variable
 
''' Checking for girls '''
 
count += (n//k)
 
if (n%k !=0):
    count+=1
 
 
''' Checking for boys '''
 
count += (m//k)
 
if (m % k != 0):
    count+=1
 
print(count) # print the count




// C# Implementation
using System;
 
public class GFG {
    public static void Main()
    {
        int n = 13;
        int m = 7;
        int k = 2;
 
        // Function to calculate rooms required
        int count = 0;
 
        // For girls
        count += (n / k);
 
        // Extra space required
        if (n % k != 0) {
            count++;
        }
 
        // For boys
        count += (m / k);
 
        // Extra space required
        if (m % k != 0) {
            count++;
        }
 
        // Print the total number of rooms required
        Console.WriteLine(count);
    }
}
 
// This code is contributed by Pushpesh Raj




function totalRooms(n, m, k) {
  let count = 0;
 
  // For girls
  count += Math.floor(n / k);
 
  // Extra space required
  if (n % k !== 0) {
    count++;
  }
 
  // For boys
  count += Math.floor(m / k);
 
  // Extra space required
  if (m % k !== 0) {
    count++;
  }
 
  return count;
}
 
// Driver code
const n = 13;
const m = 7;
const k = 2;
 
// Function call
console.log(totalRooms(n, m, k));

Output
11

Time Complexity: O(1)
Auxiliary Space: O(1)


Article Tags :