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:
1ª Fila : B1, B2, B3, B4, B5, B6
2ª 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>
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