- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Maximise the number of toys that can be purchased with amount K in C++

We are given with the prices of toys in the form of an array and an amount K in hand. The goal is to purchase the maximum no. of toys with that amount. Each element of the array is a price of a single toy, so no. of toys is no. of elements. We will sort the array of prices in ascending order so that maximum toys of less prices can be purchased first followed by costly toys.

## Input

toyprices[]= { 10, 20, 12, 15, 50, 30 } K=50

## Output

Maximum no. of toys that can be purchased : 3

**Explanation** − Sorting prices of toys in ascending order − { 10, 12, 15, 20, 30 , 50 }

Take first toy: K=50, count=1, leftover K =40 ( 50-10 ) Take second toy: K=40, count=2, leftover K =28 ( 40-12 ) Take third toy: K=28, count=13, leftover K =13 ( 28-15 ) Now K< price of next toy 20 so count=3

## Input

toyprices[]= { 50,40,30,20,10 } K=25

## Output

Maximum no. of toys that can be purchased : 1

**Explanation** − 25>10,20 but you can take only one of them as 10+20=30. Maximum count=1

## Approach used in the below program is as follows

The integer array toyprice[] stores the prices of toys.

Function maxToys( int price[], int N, int K ) takes the prices array, its length and amount

toycount is used to store the no. of toys that can be purchased, initially 0.

Variable spent is used to check how much money is spent from K.

Sort the array price[] in ascending order using sort(price, price + N);

Start traversing the array price[] from least price, price[0] till highest.

Keep adding the price of the toy in spent and check if <=K, if yes increase toycount. Which means this toy can be taken. Update spent=spent+price[i].

At last toycount has number of toys that can be purchased.

## Example

#include <bits/stdc++.h> using namespace std; int maxToys(int price[], int N, int K){ int toycount = 0; int spent = 0; //money spent upto K only // sort the prices so that minium prices are first sort(price, price + N); for (int i = 0; i < N; i++) { if (spent + price[i] <= K){ spent = spent + price[i]; toycount++; } else break; //as array is sorted } return toycount; } int main(){ int budget = 100; int toyprice[] = { 10, 120, 50, 11, 20, 100, 10, 90, 12, 15 }; int N = 10; cout <<"Maximum no. of toys that can be purchased : "<< maxToys(toyprice, N, budget) ; return 0; }

## Output

Maximum no. of toys that can be purchased : 6

- Related Questions & Answers
- Maximum elements that can be made equal with k updates in C++
- Maximum Number of Events That Can Be Attended in C++
- Maximum number of candies that can be bought in C
- Maximum number of people that can be killed with strength P in C++
- Find the largest number that can be formed with the given digits in C++
- C++ Program to find out the maximum amount of money that can be made from selling cars
- C++ Program to find out the maximum amount of score that can be decreased from a graph
- C++ Program to find out the maximum amount of profit that can be achieved from selling wheat
- Maximum array sum that can be obtained after exactly k changes in C++
- C++ program to find out the number of coordinate pairs that can be made
- C++ program to find out the maximum number of cells that can be illuminated
- Find maximum number that can be formed using digits of a given number in C++
- Maximum number of threads that can be created within a process in C
- All combinations of strings that can be used to dial a number in C/C++?
- Maximum number of parallelograms that can be made using the given length of line segments in C++