Skip to content
Related Articles

Related Articles

Improve Article

Find if neat arrangement of cups and shelves can be made

  • Difficulty Level : Basic
  • Last Updated : 21 Apr, 2021

Given three different types of cups (a[]) and saucers (b[]), and n number of shelves, find if neat arrangement of cups and shelves can be made. 
Arrangement of the cups and saucers will be neat if it follows the below rules: 
 

  • No shelf can contain both cups and saucers
  • There can be no more than 5 cups in any shelf
  • There can be no more than 10 saucers in any shelf

Examples: 
 

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

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

 



Approach: To arrange the cups and the saucers, find out the total number of cups a  and total number of saucers b  . Since, there cannot be more than 5 cups on the same shelf, therefore find out the maximum number of shelves required for cup by the formula \frac{a+5-1}{5}  and the maximum number of shelves required for saucers by using the formula \frac{b+10-1}{10}  . If sum of these two values is equal to or less than n  then the arrangement is possible otherwise not.
Below is the implementation of above approach : 
 

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>

Output: 
 

Yes

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :