Given an array A with n elements. Find the numbers of couple of i and j such that A1+A2+...+Ai=Aj+...+An with 1<=i<j<=n

Well, I have a problem described in the title. Could someone help me with that problem?
My naive solution, which is O(n^2):

#include <iostream>
using namespace std;

int num;
long int array[100001]; long long int f[100001]; 
void Input(){
    array[0] = 0;
    f[0] = 0;
    for (int i = 1;i<=num;i++){

    for (int i = 1;i<=num;i++){
        f[i] = f[i-1]+array[i];
void XuLi(){
    Input(); int counter = 0;
    for (int j = 2;j<=num;j++){
        for (int i = 1;i<j;i++){
            if (f[i]==f[num]-f[j-1]) counter++;

int main(){
    freopen("eseq.inp","r",stdin); freopen("eseq.out","w",stdout);
    XuLi(); return 0;

Could someone have a better solution?