The document describes two experiments conducted by a computer science student.
The first experiment aims to write a program to equalize the heights of three stacks by removing elements from the tallest stack(s). The code provided implements this by calculating the sums of each stack and iteratively removing elements from the stack(s) with the maximum sum until all sums are equal.
The second experiment aims to determine the minimum number of moves required to reduce a given value N to 0. The code provided takes two vectors representing stacks and calculates the maximum number of elements that can be selected without exceeding a given maximum sum.
The document describes two experiments conducted by a computer science student.
The first experiment aims to write a program to equalize the heights of three stacks by removing elements from the tallest stack(s). The code provided implements this by calculating the sums of each stack and iteratively removing elements from the stack(s) with the maximum sum until all sums are equal.
The second experiment aims to determine the minimum number of moves required to reduce a given value N to 0. The code provided takes two vectors representing stacks and calculates the maximum number of elements that can be selected without exceeding a given maximum sum.
The document describes two experiments conducted by a computer science student.
The first experiment aims to write a program to equalize the heights of three stacks by removing elements from the tallest stack(s). The code provided implements this by calculating the sums of each stack and iteratively removing elements from the stack(s) with the maximum sum until all sums are equal.
The second experiment aims to determine the minimum number of moves required to reduce a given value N to 0. The code provided takes two vectors representing stacks and calculates the maximum number of elements that can be selected without exceeding a given maximum sum.
The document describes two experiments conducted by a computer science student.
The first experiment aims to write a program to equalize the heights of three stacks by removing elements from the tallest stack(s). The code provided implements this by calculating the sums of each stack and iteratively removing elements from the stack(s) with the maximum sum until all sums are equal.
The second experiment aims to determine the minimum number of moves required to reduce a given value N to 0. The code provided takes two vectors representing stacks and calculates the maximum number of elements that can be selected without exceeding a given maximum sum.
Experiment-1.2 Student Name: Dhruv UID: 21BCS3484 Branch: CSE Section/Group:802-B Semester: 5th Date of Performance:15-08-2023 Subject Name: AP Lab Subject Code:21CSP-314
Aim:- WAP to equal the height of array using Stack.
Objective:- The Objective of this experiment is to find the maximum possible height of the stacks such that all of the stacks are exactly the same height. Code:- #include <iostream> #include <vector> using namespace std; int equalStacks(vector<int> h1, vector<int> h2, vector<int> h3) { int n1 = h1.size(), n2 = h2.size(), n3 = h3.size(); int sum1 = 0, sum2 = 0, sum3 = 0; for (int i = 0; i < n1; ++i) sum1 += h1[i]; for (int i = 0; i < n2; ++i) sum2 += h2[i]; for (int i = 0; i < n3; ++i) sum3 += h3[i]; int idx1 = 0, idx2 = 0, idx3 = 0; while (!(sum1 == sum2 && sum2 == sum3)) { int maxSum = max(max(sum1, sum2), sum3); if (sum1 == maxSum) sum1 -= h1[idx1++]; if (sum2 == maxSum) sum2 -= h2[idx2++]; if (sum3 == maxSum) sum3 -= h3[idx3++]; } return sum1; } int main() { int n1, n2, n3; DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
cin >> n1 >> n2 >> n3; vector<int> h1(n1), h2(n2), h3(n3); for (int i = 0; i < n1; ++i) cin >> h1[i]; for (int i = 0; i < n2; ++i) cin >> h2[i]; for (int i = 0; i < n3; ++i) cin >> h3[i]; int result = equalStacks(h1, h2, h3); cout << result << endl; return 0; }
Output:- DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
Aim:- WAP to Determine the minimum number of moves required to reduce the value N of to 0. Objective:- The objective of this experiment is to determine the number of moves required to reduce the value of N to 0. Code:- #include <iostream> #include <vector> using namespace std; int twoStacks(int maxSum, vector<int> a, vector<int> b) { int n = a.size(); int m = b.size(); int i = 0, j = 0; int totalSum = 0, maxScore = 0; while (j < m && totalSum + b[j] <= maxSum) { totalSum += b[j]; j++; } maxScore = j; for (i = 0; i < n && j >= 0; i++) { totalSum += a[i]; while (totalSum > maxSum && j > 0) { j--; totalSum -= b[j]; } if (totalSum <= maxSum) maxScore = max(maxScore, i +j + 1); } return maxScore; } int main() { int g; cin >> g; DEPARTMENT OF
COMPUTER SCIENCE & ENGINEERING
while (g--) { int n, m, maxSum; cin >> n >> m >> maxSum; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } vector<int> b(m); for (int i = 0; i < m; ++i) { cin >> b[i]; } int result = twoStacks(maxSum, a, b); cout << result << endl; } return 0; } Output:-