Dados N Chocolates y K estudiantes, la tarea es encontrar cómo dividir los chocolates de manera que se minimice la diferencia entre el chocolate mínimo y máximo recibido por todos los estudiantes. Imprime el valor de distribución de chocolate mínimo y máximo.
Ejemplos :
Input: N = 7, K = 3 Output: Min = 2, Max = 3 Distribution is 2 2 3 Input: N = 100, K = 10 Output: 10 10 Distribution is 10 10 10 10 10 10 10 10 10 10
Enfoque: La diferencia solo se minimizará cuando cada estudiante obtenga la misma cantidad de dulces, es decir, N % k = 0 , pero si N % K != 0 , cada estudiante obtendrá primero (NN%k)/k cantidad de dulces y luego el El resto N%k cantidad de dulces se puede distribuir a N%K estudiantes dándoles a cada uno 1 dulce. Por lo tanto, habrá solo 1 caramelo más que el (NN%k)/k si N % K != 0 con un estudiante.
A continuación se muestra la implementación del enfoque anterior:
CPP
// CPP implementation of the above approach #include <bits/stdc++.h> using namespace std; // Driver code int main(){ int n = 7, k = 3; if(n % k == 0) cout<<n/k<<" "<<n/k; else cout<<((n-(n % k))/k)<<" " <<(((n-(n % k))/k) + 1); return 0; } // This code is contributed by Sanjit_Prasad
Java
// Java implementation of the above approach public class Improve { // Driver code public static void main(String args[]) { int n = 7 ; int k = 3 ; if (n % k == 0) System.out.println(n / k +" " + n / k); else System.out.println((n-(n % k)) / k + " " + (((n-(n % k))/ k) + 1) ) ; } // This Code is contributed by ANKITRAI1 }
Python
# Python implementation of the above approach n, k = 7, 3 if(n % k == 0): print(n//k, n//k) else: print((n-n % k)//k, (n-n % k)//k + 1)
C#
// C# implementation of the // above approach using System; class GFG { // Driver code public static void Main() { int n = 7 ; int k = 3 ; if (n % k == 0) Console.WriteLine(n / k + " " + n / k); else Console.WriteLine((n - (n % k)) / k + " " + (((n - (n % k)) / k) + 1)); } } // This code is contributed // by inder_verama
PHP
<?php // PHP implementation of the above approach // Driver code $n = 7; $k = 3; if($n % $k == 0) echo $n/$k . " " . $n/$k; else echo (($n - ($n % $k)) / $k) . " " . ((($n - ($n % $k)) / $k) + 1); // This code is contributed // by Akanksha Rai(Abby_akku) ?>
Javascript
<script> // JavaScript implementation of the above approach // Driver code var n = 7 ; var k = 3 ; if (n % k == 0) document.write(n / k +" " + n / k); else document.write((n-(n % k)) / k + " " + (((n-(n % k))/ k) + 1) ) ; // This code is contributed by 29AjayKumar </script>
2 3
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)