Given **N** items of type-1 and **M** items of type-2. An object can be created from **2 items of type-1** and **1 item of type-2** or **2 items of type-2** and **1 item of type-1** pieces. The task is to find the maximum number of objects that can be created from given number of items of each type.**Examples:**

Input:N = 8, M = 7Output:5Explanation:

3 pairs of 2 type-1 and 1 type-2 objects.

2 pairs of 1 type-1 and 2 type-2 objects.Input:N = 20, M = 3Output:3Explanation:

3 pairs of 2 type-1 and 1 type-2 objects.

**Approach:**

Follow the steps below to solve the problem:

- Create two variables
**initial**and**final**. - initial = Minimum of N, M.
- final = Divide N + M by 3 ( as an object is made up of 3 components).
- Minimum of initial and final is maximum number of objects that can be created from given N type-1 and M type-2 items.

Below is the implementation of the above approach:

## C++

`// C++ program for the above problem` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function for finding` `// the maximum number of` `// objects from N type-1 and` `// M type-2 items` `int` `numberOfObjects(` `int` `N, ` `int` `M)` `{` ` ` `// storing minimum of N and M` ` ` `int` `initial = min(N, M);` ` ` `// storing maximum number of` ` ` `// objects from given items` ` ` `int` `final = (N + M) / 3;` ` ` `return` `min(initial, final);` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `N = 8;` ` ` `int` `M = 7;` ` ` `cout << numberOfObjects(N, M)` ` ` `<< endl;` ` ` `return` `0;` `}` |

## Java

`// Java program for the above problem` `class` `GFG{` ` ` `// Function for finding` `// the maximum number of` `// objects from N type-1 and` `// M type-2 items` `static` `int` `numberOfObjects(` `int` `N, ` `int` `M)` `{` ` ` ` ` `// Storing minimum of N and M` ` ` `int` `initial = Math.min(N, M);` ` ` `// Storing maximum number of` ` ` `// objects from given items` ` ` `int` `last = (N + M) / ` `3` `;` ` ` `return` `Math.min(initial, last);` `}` `// Driver Code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `N = ` `8` `;` ` ` `int` `M = ` `7` `;` ` ` ` ` `System.out.println(numberOfObjects(N, M));` `}` `}` `// This code is contributed by rutvik_56` |

## Python3

`# Python3 program for the above problem` `# Function for finding` `# the maximum number of` `# objects from N type-1 and` `# M type-2 items` `def` `numberOfObjects(N, M):` ` ` ` ` `# Storing minimum of N and M` ` ` `initial ` `=` `min` `(N, M)` ` ` `# Storing maximum number of` ` ` `# objects from given items` ` ` `final ` `=` `(N ` `+` `M) ` `/` `/` `3` ` ` `return` `min` `(initial, final)` `# Driver Code` `if` `__name__ ` `=` `=` `'__main__'` `:` ` ` ` ` `N ` `=` `8` ` ` `M ` `=` `7` ` ` ` ` `print` `(numberOfObjects(N, M))` `# This code is contributed by mohit kumar 29` |

## C#

`// C# program for the above problem` `using` `System;` `class` `GFG{` ` ` `// Function for finding` `// the maximum number of` `// objects from N type-1 and` `// M type-2 items` `static` `int` `numberOfObjects(` `int` `N, ` `int` `M)` `{` ` ` ` ` `// Storing minimum of N and M` ` ` `int` `initial = Math.Min(N, M);` ` ` ` ` `// Storing maximum number of` ` ` `// objects from given items` ` ` `int` `last = (N + M) / 3;` ` ` ` ` `return` `Math.Min(initial, last);` `}` ` ` `// Driver Code` `public` `static` `void` `Main(` `string` `[] args)` `{` ` ` `int` `N = 8;` ` ` `int` `M = 7;` ` ` ` ` `Console.Write(numberOfObjects(N, M));` `}` `}` ` ` `// This code is contributed by rock_cool` |

## Javascript

`<script>` `// JavaScript program for the above problem` `// Function for finding` `// the maximum number of` `// objects from N type-1 and` `// M type-2 items` `function` `numberOfObjects(N, M)` `{` ` ` `// storing minimum of N and M` ` ` `let initial = Math.min(N, M);` ` ` `// storing maximum number of` ` ` `// objects from given items` ` ` `let final = Math.floor((N + M) / 3);` ` ` `return` `Math.min(initial, final);` `}` `// Driver Code` ` ` `let N = 8;` ` ` `let M = 7;` ` ` `document.write(numberOfObjects(N, M)` ` ` `+ ` `"<br>"` `);` `// This code is contributed by Surbhi Tyagi.` `</script>` |

**Output:**

5

**Time Complexity:** O(1) **Auxiliary Space Complexity:** O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**