1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define N 500005 6 using namespace std; 7 typedef long long LL; 8 LL prefix[N], suffix[N], num[N]; 9 LL cntSuf[N]; 10 int main(){ 11 int n; 12 scanf("%d", &n); 13 for(int i=1; i<=n; ++i){ 14 scanf("%lld", &num[i]); 15 prefix[i]=prefix[i-1]+num[i];//前缀和 16 } 17 for(int i=n; i>=1; --i) 18 suffix[i]=suffix[i+1]+num[i];//后缀和 19 LL s=prefix[n]/3; 20 if(prefix[n]%3!=0){ 21 printf("0 "); 22 return 0; 23 } 24 LL ans=0; 25 for(int i=1; i<=n; ++i) 26 if(suffix[n-i+1]==s) cntSuf[n-i+1]=cntSuf[n-i+2]+1; 27 else cntSuf[n-i+1]=cntSuf[n-i+2]; 28 for(int i=1; i<=n; ++i) 29 if(prefix[i]==s) ans+=cntSuf[i+2]; 30 printf("%lld ", ans); 31 return 0; 32 }