Coloque N niños y M niñas en diferentes filas de modo que se maximice el número de personas colocadas en cada fila.

Dados dos números enteros N y M que representan el número de niños y niñas, la tarea es ordenarlos en filas diferentes del mismo tamaño de modo que cada fila contenga el número máximo de estudiantes posible y cada fila debe contener niños o niñas.
Nota: Ninguna fila puede contener niños y niñas.

Ejemplo:

Entrada: N= 4, M = 2
Salida: 2
Explicación:
El siguiente orden de arreglo satisface las condiciones dadas:
1ra Fila : B1, B2 
2da Fila : B3, B4
3ra Fila : G1, G2
Claramente, cada fila tiene ya sean niños o niñas.

Entrada: N= 6, M = 6
Salida: 6
Explicación:
El siguiente orden de disposición satisface las condiciones dadas:
Fila : B1, B2, B3, B4, B5, B6
Fila : G1, G2, G3, G4 , G5, G6

 

Enfoque: siga los pasos a continuación para resolver el problema 

  • Dado que cada fila puede contener niños o niñas y el tamaño de todas las filas debe ser el mismo, el arreglo más óptimo posible es colocar el mayor divisor común de (N, M) número de elementos en cada fila.
  • Por lo tanto, imprima MCD(N, M) como la respuesta requerida.

A continuación se muestra la implementación del enfoque anterior:

C++14

// C++ Program to implement
// the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate
// GCD of two numbers
int gcd(int a, int b)
{
    if (b == 0)
        return a;
 
    return gcd(b, a % b);
}
 
// Function to count maximum persons
// that can be placed in a row
int maximumRowValue(int n, int m) { return gcd(n, m); }
 
// Driver Code
int main()
{
    // Input
    int N = 4;
    int M = 2;
 
    // Function to count maximum
    // persons that can be placed in a row
    cout << maximumRowValue(N, M);
}

Java

// Java Program to implement
// the above approach
import java.util.*;
class GFG
{
 
  // Function to calculate
  // GCD of two numbers
  static int gcd(int a, int b)
  {
    if (b == 0)
      return a;
 
    return gcd(b, a % b);
  }
 
  // Function to count maximum persons
  // that can be placed in a row
  static int maximumRowValue(int n, int m) {
    return gcd(n, m);
  }
 
  // Driver Code
  public static void main(String args[])
  {
    // Input
    int N = 4;
    int M = 2;
 
    // Function to count maximum
    // persons that can be placed in a row
    System.out.print(maximumRowValue(N, M));
  }
}
 
// This code is contributed by SURENDRA_GANGWAR.

Python3

# Python3 Program to implement
# the above approach
 
# Function to calculate
# GCD of two numbers
def gcd(a, b):
    if (b == 0):
        return a
 
    return gcd(b, a % b)
 
# Function to count maximum persons
# that can be placed in a row
def maximumRowValue(n, m):
    return gcd(n, m)
 
# Driver Code
if __name__ == '__main__':
   
    # Input
    N = 4
    M = 2
 
    # Function to count maximum
    # persons that can be placed in a row
    print (maximumRowValue(N, M))
 
# This code is contributed by mohit kumar 29.

C#

// C# Program to implement
// the above approach
using System;
class GFG
{
 
  // Function to calculate
  // GCD of two numbers
  static int gcd(int a, int b)
  {
    if (b == 0)
      return a;
 
    return gcd(b, a % b);
  }
 
  // Function to count maximum persons
  // that can be placed in a row
  static int maximumRowValue(int n, int m) { return gcd(n, m); }
 
  // Driver Code
  public static void Main(String[] args)
  {
     
    // Input
    int N = 4;
    int M = 2;
 
    // Function to count maximum
    // persons that can be placed in a row
    Console.WriteLine(maximumRowValue(N, M));
  }
}
 
// This code is contributed by code_hunt.

Javascript

<script>
// javascript Program to implement
// the above approach
 
    // Function to calculate
    // GCD of two numbers
    function gcd(a , b) {
        if (b == 0)
            return a;
 
        return gcd(b, a % b);
    }
 
    // Function to count maximum persons
    // that can be placed in a row
    function maximumRowValue(n , m) {
        return gcd(n, m);
    }
 
    // Driver Code
     
        // Input
        var N = 4;
        var M = 2;
 
        // Function to count maximum
        // persons that can be placed in a row
        document.write(maximumRowValue(N, M));
 
// This code is contributed by aashish1995
</script>
Producción: 

2

 

Complejidad temporal: O(log N) Espacio
auxiliar : O(1) 

Publicación traducida automáticamente

Artículo escrito por shekabhi1208 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *