Untitled

unknown
c_cpp
2 years ago
2.1 kB
2
Indexable
Never
```//Please do not modify the header files.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

// Stack class to represent a stack
class Stack{
private:
vector<int> array;

public:
Stack() {};

bool isEmpty(){
return (array.size() == 0);
}

void push(int x){
array.push_back(x);
}

int top(){
return array.back();
}

void pop(){
array.pop_back();
}

int size() {
return array.size();
}

void reverse_input(){
reverse(array.begin(), array.end());
}

};

int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */

int n1,n2,n3;
cin >> n1 >> n2 >> n3;

Stack s1;
Stack s2;
Stack s3;

int sum1 = 0, sum2 = 0, sum3 = 0;

while (n1--){
int temp;
cin >> temp;
s1.push(temp);
sum1 += temp;
}

while (n2--){
int temp;
cin >> temp;
s2.push(temp);
sum2 += temp;
}

while (n3--){
int temp;
cin >> temp;
s3.push(temp);
sum3 += temp;
}

s1.reverse_input();
s2.reverse_input();
s3.reverse_input();

while (s1.size() != 0 && s2.size() != 0 && s3.size() != 0){
if (sum1 == sum2 && sum1 == sum3){
cout << sum1;
return 0;
}
else if (sum1 >= sum2 && sum1 >= sum3){
sum1 -= s1.top();
s1.pop();
}
else if (sum2 >= sum1 && sum2 >= sum3){
sum2 -= s2.top();
s2.pop();
}
else if (sum3 >= sum2 && sum3 >= sum1){
sum3 -= s3.top();
s3.pop();
}

}

cout << "0\n";

// cout << "top 1 is " << s1.top();
// cout << "top 2 is " << s2.top();
// cout << "top 3 is " << s3.top();
return 0;
}```