package main
import (
"fmt"
)
func main() {
var n int
fmt.Scan(&n)
nums := make([]int, n)
sum := 0
for i:=0; i< n; i++ {
fmt.Scan(&nums[i])
sum += nums[i]
}
if sum%3 != 0 {
fmt.Println(0)
return
}
target := sum/3
preSum := make([]int,n)
posCount := make([]int, n)
posTotal := 0
sumTotal := 0
for i:=0; i <n; i++ {
sumTotal += nums[i]
preSum[i] = sumTotal
if nums[i] > 0 {
posTotal++
}
posCount[i] = posTotal
}
count := 0
firstCuts :=make(map[int]struct{})
for j:=1; j < n-1; j++ {
if preSum[j-1] == target && posCount[j-1] >0 {
firstCuts[j-1] = struct{}{}
}
if preSum[j] == 2 * target && posCount[j] >0 {
for i := range firstCuts {
if posCount[i] < posCount[j] {
count++
}
}
}
}
fmt.Println(count)
}