Related Articles

Related Articles

Maximum items that can be bought with the given type of coins
  • Last Updated : 23 Sep, 2019

Given three integers X, Y and Z which represent the number of coins to buy some items. The cost of items is given below:

Item type Cost
1 3 X coins
2 3 Y coins
3 3 Z coins
4 1 X coin + 1 Y coin + 1 Z coin

The task is to find the maximum number of items that can be bought with the given number of coins.

Input: X = 4, Y = 5, Z = 6
Output: 4
Buy 1 item of type 1: X = 1, Y = 5, Z = 6
Buy 1 item of type 2: X = 1, Y = 2, Z = 6
Buy 2 items of type 3: X = 1, Y = 2, Z = 0
Total items bought = 1 + 1 + 2 = 4

Input: X = 6, Y = 7, Z = 9
Output: 7

Approach: The count of items of type1, type2 and type3 that can be bought will be X / 3, Y / 3 and Z / 3 respectively. Now, the number of coins will get reduced after buying these items as X = X % 3, Y = Y % 3 and Z = Z % 3. Since, buying the item of type 4 requires a coin from each of the type. So, the total items of type 4 that can be bought will be the minimum of X, Y and Z and the result will be the sum of these items which were bought from each of the type.



Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the approach
#include <iostream>
using namespace std;
  
const int COST = 3;
  
// Function to find maximum fruits
// Can buy from given values of x, y, z.
int maxItems(int x, int y, int z)
{
  
    // Items of type 1 that can be bought
    int type1 = x / COST;
  
    // Update the coins
    x %= COST;
  
    // Items of type 2 that can be bought
    int type2 = y / COST;
  
    // Update the coins
    y %= COST;
  
    // Items of type 3 that can be bought
    int type3 = z / COST;
  
    // Update the coins
    z %= COST;
  
    // Items of type 4 that can be bought
    // To buy a type 4 item, a coin
    // of each type is required
    int type4 = min(x, min(y, z));
  
    // Total items that can be bought
    int maxItems = type1 + type2 + type3 + type4;
    return maxItems;
}
  
// Driver code
int main()
{
    int x = 4, y = 5, z = 6;
  
    cout << maxItems(x, y, z);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
import java.io.*;
  
class GFG 
{
static int COST = 3;
  
// Function to find maximum fruits
// Can buy from given values of x, y, z.
static int maxItems(int x, int y, int z)
{
  
    // Items of type 1 that can be bought
    int type1 = x / COST;
  
    // Update the coins
    x %= COST;
  
    // Items of type 2 that can be bought
    int type2 = y / COST;
  
    // Update the coins
    y %= COST;
  
    // Items of type 3 that can be bought
    int type3 = z / COST;
  
    // Update the coins
    z %= COST;
  
    // Items of type 4 that can be bought
    // To buy a type 4 item, a coin
    // of each type is required
    int type4 = Math.min(x, Math.min(y, z));
  
    // Total items that can be bought
    int maxItems = type1 + type2 + type3 + type4;
    return maxItems;
}
  
// Driver code
public static void main (String[] args) 
{
    int x = 4, y = 5, z = 6;
    System.out.println(maxItems(x, y, z));
}
  
// This code is contributed by @tushil

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the approach 
COST = 3
  
# Function to find maximum fruits 
# Can buy from given values of x, y, z. 
def maxItems(x, y, z) : 
  
    # Items of type 1 that can be bought 
    type1 = x // COST; 
  
    # Update the coins 
    x %= COST; 
  
    # Items of type 2 that can be bought 
    type2 = y // COST; 
  
    # Update the coins 
    y %= COST; 
  
    # Items of type 3 that can be bought 
    type3 = z // COST; 
  
    # Update the coins 
    z %= COST; 
  
    # Items of type 4 that can be bought 
    # To buy a type 4 item, a coin 
    # of each type is required 
    type4 = min(x, min(y, z)); 
  
    # Total items that can be bought 
    maxItems = type1 + type2 + type3 + type4; 
    return maxItems; 
  
# Driver code 
if __name__ == "__main__"
  
    x = 4; y = 5; z = 6
  
    print(maxItems(x, y, z)); 
  
# This code is contributed by AnkitRai01

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach
using System;
  
class GFG
{
static int COST = 3;
  
// Function to find maximum fruits
// Can buy from given values of x, y, z.
static int maxItems(int x, int y, int z)
{
  
    // Items of type 1 that can be bought
    int type1 = x / COST;
  
    // Update the coins
    x %= COST;
  
    // Items of type 2 that can be bought
    int type2 = y / COST;
  
    // Update the coins
    y %= COST;
  
    // Items of type 3 that can be bought
    int type3 = z / COST;
  
    // Update the coins
    z %= COST;
  
    // Items of type 4 that can be bought
    // To buy a type 4 item, a coin
    // of each type is required
    int type4 = Math.Min(x, Math.Min(y, z));
  
    // Total items that can be bought
    int maxItems = type1 + type2 + type3 + type4;
    return maxItems;
}
  
// Driver code
static public void Main ()
{
    int x = 4, y = 5, z = 6;
      
    Console.Write (maxItems(x, y, z));
}
  
// This code is contributed by ajit..

chevron_right


Output:

4

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :