Dados tres tipos diferentes de tazas (a[]) y platillos (b[]), y n número de estantes, encuentre si se puede hacer una disposición ordenada de tazas y estantes.
La disposición de las tazas y platillos será ordenada si sigue las siguientes reglas:
- Ningún estante puede contener tazas y platillos
- No puede haber más de 5 tazas en ningún estante.
- No puede haber más de 10 platillos en cualquier estante.
Ejemplos:
Input : a[] = {3, 2, 6} b[] = {4, 8, 9} n = 10 Output : Yes Explanation : Total cups = 11, shelves required = 3 Total saucers = 21, shelves required = 3 Total required shelves = 3 + 3 = 6, which is less than given number of shelves n. So, output is Yes. Input : a[] = {4, 7, 4} b[] = {3, 9, 10} n = 2 Output : No
Planteamiento: Para ordenar las tazas y los platillos, averigüe el número total de tazas y el número total de platillos . Dado que no puede haber más de 5 tazas en el mismo estante, averigüe el número máximo de estantes requeridos para taza por la fórmula y el número máximo de estantes requeridos para platillos usando la fórmula . Si la suma de estos dos valores es igual o menor que entonces el arreglo es posible, de lo contrario no.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to find if neat // arrangement of cups and // shelves can be made #include<bits/stdc++.h> using namespace std; // Function to check arrangement void canArrange(int a[], int b[], int n) { int suma = 0, sumb = 0; // Calculating total number // of cups for(int i = 0; i < 3; i++) suma += a[i]; // Calculating total number // of saucers for(int i = 0; i < 3; i++) sumb += b[i]; // Adding 5 and 10 so that if the // total sum is less than 5 and // 10 then we can get 1 as the // answer and not 0 int na = (suma + 5 - 1) / 5; int nb = (sumb + 10 - 1) / 10; if(na + nb <= n) cout << "Yes"; else cout << "No"; } // Driver code int main() { // Number of cups of each type int a[] = {3, 2, 6}; // Number of saucers of each type int b[] = {4, 8, 9}; // Number of shelves int n = 10; // Calling function canArrange(a, b, n); return 0; }
Java
// Java code to find if neat // arrangement of cups and // shelves can be made import java.io.*; class Gfg { // Function to check arrangement public static void canArrange(int a[], int b[], int n) { int suma = 0, sumb = 0; // Calculating total number // of cups for(int i = 0; i < 3; i++) suma += a[i]; // Calculating total number // of saucers for(int i = 0; i < 3; i++) sumb += b[i]; // Adding 5 and 10 so that if // the total sum is less than // 5 and 10 then we can get 1 // as the answer and not 0 int na = (suma + 5 - 1) / 5; int nb = (sumb + 10 - 1) / 10; if(na + nb <= n) System.out.println("Yes"); else System.out.println("No"); } // Driver function public static void main(String args[]) { // Number of cups of each type int a[] = {3, 2, 6}; // Number of saucers of each type int b[] = {4, 8, 9}; // Number of shelves int n = 10; // Calling function canArrange(a, b, n); } }
Python 3
# Python code to find if neat # arrangement of cups and # shelves can be made import math # Function to check arrangement def canArrange( a, b, n): suma = 0 sumb = 0 # Calculating total number # of cups for i in range(0, len(a)): suma += a[i] # Calculating total number # of saucers for i in range(0,len(b)): sumb += b[i] # Adding 5 and 10 so that if # the total sum is less than # 5 and 10 then we can get 1 # as the answer and not 0 na = (suma + 5 - 1) / 5 nb = (sumb + 10 - 1) / 10 if(na + nb <= n): print("Yes") else: print("No") # driver function #Number of cups of each type a = [3, 2, 6] # Number of saucers of each type b = [4, 8, 9] # Number of shelves n = 10 #Calling function canArrange(a ,b ,n) # This code is contributed by Gitanjali.
C#
// C# code to find if neat // arrangement of cups and // shelves can be made using System; class Gfg { // Function to check arrangement public static void canArrange(int []a, int []b, int n) { int suma = 0, sumb = 0; // Calculating total number // of cups for(int i = 0; i < 3; i++) suma += a[i]; // Calculating total number // of saucers for(int i = 0; i < 3; i++) sumb += b[i]; // Adding 5 and 10 so that if // the total sum is less than // 5 and 10 then we can get 1 // as the answer and not 0 int na = (suma + 5 - 1) / 5; int nb = (sumb + 10 - 1) / 10; if(na + nb <= n) Console.WriteLine("Yes"); else Console.WriteLine("No"); } // Driver function public static void Main() { // Number of cups of each type int []a = {3, 2, 6}; // Number of saucers of each type int []b = {4, 8, 9}; // Number of shelves int n = 10; // Calling function canArrange(a, b, n); } } // This code is contributed by vt_m.
PHP
<?php // PHP code to find if neat // arrangement of cups and // shelves can be made // Function to check arrangement function canArrange($a, $b, $n) { $suma = 0; $sumb = 0; // Calculating total number // of cups for( $i = 0; $i < 3; $i++) $suma += $a[$i]; // Calculating total number // of saucers for( $i = 0; $i < 3; $i++) $sumb += $b[$i]; // Adding 5 and 10 so that if the // total sum is less than 5 and // 10 then we can get 1 as the // answer and not 0 $na = ($suma + 5 - 1) / 5; $nb = ($sumb + 10 - 1) / 10; if($na + $nb <= $n) echo "Yes"; else echo "No"; } // Driver code // Number of cups of each type $a = array(3, 2, 6); // Number of saucers of each type $b = array(4, 8, 9); // Number of shelves $n = 10; // Calling function canArrange($a, $b, $n); // This code is contributed by vt_m. ?>
Javascript
<script> // Javascript code to find if neat // arrangement of cups and // shelves can be made // Function to check arrangement function canArrange( a, b, n) { let suma = 0, sumb = 0; // Calculating total number // of cups for(let i = 0; i < 3; i++) suma += a[i]; // Calculating total number // of saucers for(let i = 0; i < 3; i++) sumb += b[i]; // Adding 5 and 10 so that if the // total sum is less than 5 and // 10 then we can get 1 as the // answer and not 0 let na = Math.floor((suma + 5 - 1)/5); let nb = Math.floor((sumb + 10 - 1)/10); if(na + nb <= n) document.write("Yes"); else document.write("No"); } // driver code // Number of cups of each type let a = [3, 2, 6]; // Number of saucers of each type let b = [4, 8, 9]; // Number of shelves let n = 10; // Calling function canArrange(a, b, n); </script>
Producción:
Yes