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:
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
Below is the implementation of above approach :
// 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 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 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# 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 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. ?> |
<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
Time complexity: O(1)
Auxiliary space: O(1)