func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   class Node {    public:     Node<T> *prev;     Node<T> *next;     T data;     Node(T data);   };   template <class T>   Node<T>::Node(T data) {     this->data = data;   }   template <class T>   class Stack {    public:     Node<T> *top;     int size;     Stack();     bool empty();     void push(T a);     void pop();     void clear();   };   template <class T>   Stack<T>::Stack() {     top = NULL;     size = 0;   }   template <class T>   bool Stack<T>::empty() {     return (size == 0);   }   template <class T>   void Stack<T>::push(T data) {     Node<T> *t = new Node<T>(data);     t->next = top;     top = t;     size++;     return;   }   template <class T>   void Stack<T>::pop() {     top = top->next;     size--;     return;   }   template <class T>   void Stack<T>::clear() {     top = NULL;     size = 0;   }   int main() {     Stack<int> *st = new Stack<int>();     int n;     cin >> n;     int a;     int answer = 0;     int size = 0;     int leftSum = 0, rightSum = 0;     for (int i = 0; i < n; i++) {       cin >> a;       rightSum = rightSum + a;       st->push(a);       size++;     }     while (!st->empty()) {       leftSum = leftSum + st->top->data;       rightSum = rightSum - st->top->data;       if (leftSum == rightSum && size != 1) answer++;       st->pop();       size--;     }     cout << answer;     return 0;   }   