Dada N Caramelos Grandes y M Caramelos Pequeños. Se puede comprar un Big Candy pagando X dulces pequeños. Alternativamente, un caramelo grande se puede vender por Y caramelos pequeños. La tarea es encontrar el número máximo de dulces grandes que se pueden comprar.
Ejemplos:
Entrada: N = 3, M = 10, X = 4, Y = 2
Salida: 5
8 dulces pequeños se intercambian por 2 dulces grandes.
Entrada: N = 3, M = 10, X = 1, Y = 2
Salida: 16
Vende todos los dulces grandes iniciales para obtener 6 dulces pequeños.
Ahora 16 caramelos pequeños se pueden cambiar por 16 caramelos grandes.
En el primer ejemplo, los caramelos grandes no se pueden vender con fines de lucro. Por lo tanto, solo los dulces pequeños restantes se pueden cambiar por dulces grandes.
En el segundo ejemplo, los caramelos grandes se pueden vender con fines de lucro.
Enfoque: si los dulces grandes iniciales se pueden vender con fines de lucro, es decir , X < Y , entonces venda los dulces grandes y actualice el recuento de dulces grandes y pequeños. Luego, vende todos los dulces pequeños actualizados para comprar dulces grandes.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <iostream> using namespace std; // Function to return the maximum big // candies that can be bought int max_candies(int bigCandies, int smallCandies,int X, int Y) { // If initial big candies // can be sold for profit if (X < Y) { smallCandies += Y * bigCandies; bigCandies = 0; } // Update big candies that can be bought bigCandies += (smallCandies / X); return bigCandies; } // Driver code int main() { int N = 3, M = 10; int X = 4, Y = 2; cout << (max_candies(N, M, X, Y)); return 0; }
Java
// Java implementation of the approach class GFG { // Function to return the maximum big candies // that can be bought static int max_candies(int bigCandies, int smallCandies, int X, int Y) { // If initial big candies can be sold for profit if (X < Y) { smallCandies += Y * bigCandies; bigCandies = 0; } // Update big candies that can be bought bigCandies += (smallCandies / X); return bigCandies; } // Driver code public static void main(String[] args) { int N = 3, M = 10; int X = 4, Y = 2; System.out.println(max_candies(N, M, X, Y)); } }
Python3
# Python3 implementation of the approach # Function to return the maximum big candies # that can be bought def max_candies(bigCandies, smallCandies, X, Y): # If initial big candies can # be sold for profit if(X < Y): smallCandies += Y * bigCandies bigCandies = 0 # Update big candies that can be bought bigCandies += (smallCandies // X) return bigCandies # Driver code N = 3 M = 10 X = 4 Y = 2 print(max_candies(N, M, X, Y)) # This code is contributed by Code_Mech
C#
// C# implementation of the approach using System; class GFG { // Function to return the maximum // big candies that can be bought static int max_candies(int bigCandies, int smallCandies, int X, int Y) { // If initial big candies // can be sold for profit if (X < Y) { smallCandies += Y * bigCandies; bigCandies = 0; } // Update big candies that can be bought bigCandies += (smallCandies / X); return bigCandies; } // Driver code static public void Main () { int N = 3, M = 10; int X = 4, Y = 2; Console.WriteLine(max_candies(N, M, X, Y)); } } // This Code is contributed by ajit...
PHP
<?php // PHP implementation of the approach // Function to return the maximum big // candies that can be bought function max_candies($bigCandies, $smallCandies, $X, $Y) { // If initial big candies can be // sold for profit if ($X < $Y) { $smallCandies += $Y * $bigCandies; $bigCandies = 0; } // Update big candies that can be bought $bigCandies += (int)($smallCandies / $X); return $bigCandies; } // Driver code $N = 3; $M = 10; $X = 4; $Y = 2; echo (max_candies($N, $M, $X, $Y)); // This code is contributed by akt_mit ?>
Javascript
<script> // Javascript implementation of the approach // Function to return the maximum // big candies that can be bought function max_candies(bigCandies, smallCandies, X, Y) { // If initial big candies // can be sold for profit if (X < Y) { smallCandies += Y * bigCandies; bigCandies = 0; } // Update big candies that can be bought bigCandies += parseInt(smallCandies / X, 10); return bigCandies; } let N = 3, M = 10; let X = 4, Y = 2; document.write(max_candies(N, M, X, Y)); </script>
5
Publicación traducida automáticamente
Artículo escrito por AmanKumarSingh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA