• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Pro Programming

Professional way of Programming: Learn C, C++, Java, Python, Dot Net, Android the professional way

  • Home
  • C MCQs
  • C/C++ Programs
  • Java Programs
  • C#
  • Python
  • MySQL
  • Topics
    • Arrays
    • Strings
    • Link Lists
    • Trees
    • Shapes
  • Projects
  • Articles
  • Games
You are here: Home / Archives for Minimum elements to be removed such that sum of adjacent elements is always even

Minimum elements to be removed such that sum of adjacent elements is always even

Maximum volume of cube for every person when edge of N cubes are given

Leave a Comment


Given an array of N integers which denotes the edges of N cubical structures respectively. Also given are M integers which denotes the number of peoples. The task is to find the maximum amount of volume of a cube that can be given to every person.

Note: Cubes can be cut of any shape from any of the N cubes.

Examples:

Input: a[] = {1, 1, 1, 2, 2}, m = 3
Output: 4
All three person get a slice of volume 4 each
Person 1 gets a slice of volume 4 from the last cube.
Person 2 gets a slice of volume 4 from the last cube.
Person 3 gets a slice of volume 4 from the second last cube.

Input: a[] = {2, 2, 2, 2, 2}, m = 4
Output: 8


Naive Approach: A naive approach is to first calculate the volume of all of the cubes and then linearly check for every volume that it can be distributed among all M people or not and find the maximum volume among all such volumes.

Time Complexity: O(N2)

Efficient Approach: An efficient approach is to use binary search to find the answer. Since the edge lengths are given in the array, convert them to the volume of the respective cubes.

Find the maximum volume among volumes of all of the cubes. Say, the maximum volume is maxVolume. Now, perform binary search on the range [0, maxVolume].

  • Calculate the middle value of the range, say mid.
  • Now, calculate the total number of cubes that can be cut of all of the cubes of volume mid.
  • If the total cubes that can be cut exceed the number of persons, then that amount of volume of cubes can be cut for every person, hence we check for a larger value in the range [mid+1, maxVolume].
  • If the total cubes do not exceed the number of persons, then we check for an answer in the range [low, mid-1].

Below is the implementation of the above approach:

#include <bits/stdc++.h>

using namespace std;

int getMaximumVloume(int a[], int n, int m)

{

int maxVolume = 0;

for (int i = 0; i < n; i++) {

a[i] = a[i] * a[i] * a[i];

maxVolume = max(a[i], maxVolume);

}

int low = 0, high = maxVolume;

int maxVol = 0;

while (low <= high) {

int mid = (low + high) >> 1;

int cnt = 0;

for (int i = 0; i < n; i++) {

cnt += a[i] / mid;

}

if (cnt >= m) {

low = mid + 1;

maxVol = max(maxVol, mid);

}

else

high = mid - 1;

}

return maxVol;

}

int main()

{

int a[] = { 1, 1, 1, 2, 2 };

int n = sizeof(a) / sizeof(a[0]);

int m = 3;

cout << getMaximumVloume(a, n, m);

return 0;

}

Time Complexity: O(N * log (maxVolume))



Striver(underscore)79 at Codechef and codeforces D


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to [email protected] See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the “Improve Article” button below.

Article Tags :


thumb_up
Be the First to upvote.

Please write to us at [email protected] to report any issue with the above content.


Post navigation


Previous

first_page Partition the array into three equal sum segments







Source link

Filed Under: c programming Tagged With: •   Dynamic Programming, About Us, Advanced Data Structure, Advanced Topics, Algo ▼, Algorithm Paradigms ►, Algorithms, All Algorithms, All Data Structures, Analysis of Algorithms, Aptitude, Array, Array Manipulation and Sum, Arrays, Backtracking, Binary Search, Binary Search Tree, Binary Tree, Bit Algorithms, Branch & Bound, C, Calculate the total fine to be collected, Campus Ambassador Program, Campus Geek of the Month, Careers, Check if an array is sorted and rotated, Check if X can give change to every person in the Queue, Check whether an Array is Subarray of another Array, Coin game of two corners (Greedy Approach), Company Prep, Company-wise, Competitive Programming, Compiler Design, Computer Graphics, Computer Networks, Computer Organization, Computer Organization & Architecture, Constructive Algorithms, Contact Us, Contests, contribute.geeksforgeeks.org, Convert a String to Integer Array in C/C++, Core Subjects ►, Count array elements that divide the sum of all other elements, Count distinct elements in an array, Count of pairs (x, Courses, Coviam Software Developer Internship Experience, CS Subjects, CS Subjects ▼, CS Subjectwise ►, CSS, Data Structures, DBMS, Design a Hit Counter, Design Patterns, Digital Electronics, Divide and Conquer, DS ▼, Engg. Mathematics, Experienced Interviews, Find triplets in an array whose AND is maximum, Find two numbers whose divisors are given in a random order, For each element in 1st array count elements less than or equal to it in 2nd array | Set 2, Game Theory, GATE ▼, GATE 2019, GATE CS Corner, GATE Notes, GATE Official Papers, GBlog, Geek of the Month, Geek on the Top, Generating subarrays using recursion, Geometric Algorithms, Graph, Graph Algorithms, Greedy Algorithms, Hashing, Heap, How do Dynamic arrays work?, HTML, HTML & XML, ide.geeksforgeeks.org, Internship, Internship Interviews, Internships, Interview ▼, Interview Experiences, ISRO CS Exam, Java, JavaScript, jQuery, K maximum sum combinations from two arrays, Languages, Languages ►, Languages ▼, Largest number in an array that is not a perfect cube, Largest palindromic number in an array, Largest perfect cube number in an Array, Last Minute Notes, Length of the longest alternating subarray, Length of the longest Subarray with only Even Elements, LinkedList, Longest subarray having maximum sum, Longest subsequence such that adjacent elements have at least one common digit, Machine Learning, Make all numbers of an array equal, MakeMyTrip Interview Experience 2019, Mathematical Algorithms, Matrix, Maximum even sum subsequence, Maximum length of rod for Q-th person, Maximum Sum Path in Two Arrays, Maximum sum rectangle in a 2D matrix | DP-27, Maximum triplet sum in array, Maximum value of |arr[0] - arr[1]| + |arr[1] - arr[2]| + ... +|arr[n - 2] - arr[n - 1]| when elements are from 1 to n, Maximum value of |arr[i] - arr[j]| + |i - j|, Maximum value of arr[i] % arr[j] for a given array, Merge K sorted arrays | Set 3 ( Using Divide and Conquer Approach ), Microprocessor, Minimum elements to be removed such that sum of adjacent elements is always even, Minimum number of items to be delivered, Minimum number of swaps required to sort an array | Set 2, Minimum operations required to make all the array elements equal, Multidimensional Arrays in Java, Multiple Choice Quizzes, Next greater element in same order as input, Operating Systems, Partition the array into three equal sum segments, Pattern Searching, PHP, Placement Course, Practice, Practice Company Questions, Privacy Policy, Program for K Most Recently Used (MRU) Apps, Program Output, Program to check if an array is palindrome or not using Recursion, Program to find the Hidden Number, Project, Puzzles, Python, Queue, Quizzes ▼, Randomized Algorithms, Reach the numbers by making jumps of two given lengths, Rearrange Odd and Even values in Alternate Fashion in Ascending Order, Remove duplicates from unsorted array, School Programming, Searching Algorithms, Skip to content, Sliding Window Maximum (Maximum of all subarrays of size k), Smallest perfect Cube divisible by all elements of an array, Software Engineering, Some rights reserved, Sort elements by frequency | Set 5 (using Java Map), Sorting Algorithms, SQL, Stack, Strings, Students ▼, Subjective Questions, Subsequence with maximum odd sum, Suggest an Article, Sum of all odd frequency elements in an array, Sum of minimum elements of all subarrays, Sum of XOR of all subarrays, Testimonials, Theory of Computation, Top Topics, Topic-wise, Topicwise ►, Tree based DS ►, UGC NET CS Paper II, UGC NET CS Paper III, UGC NET Papers, Video Tutorials, Videos, Web Technology, What’s Difference?, Write an Article, Write Interview Experience, y) in an array such that x < y

Primary Sidebar

Recent Posts

  • Total Quality Management Questions and Answers – Agile Manufacturing
  • How to Become a Cyber Security Engineer?
  • How to Become a Software Architect?
  • 7 Best Languages to Learn IoT Development in 2020
  • REDIS Tutorial: Beginners
  • Privacy Policy
  • About
  • Contact US

© 2020 ProProgramming Privacy Policy About Contact Us