// no of ways to divide the given array into 3 equal parts
import java.util.* ;
public class Main
{
public static void main
( String [ ] args
) { Scanner sc
= new Scanner
( System .
in ) ; int n= sc.nextInt ( ) ;
int [ ] nums = new int [ n] ;
for ( int i= 0 ; i< n; i++ ) {
nums[ i] = sc.nextInt ( ) ;
}
int tot_sum= 0 ;
for ( int i= 0 ; i< n; i++ ) {
tot_sum+= nums[ i] ;
}
int lhs= 0 ;
int rhs= 0 ;
int count= 0 ;
if ( tot_sum% 3 == 0 ) {
int y= tot_sum/ 3 ;
//I need current sum
int current_sum= 0 ;
HashMap
< Integer ,Integer
> f
= new HashMap
<> ( ) ;
for ( int j= 0 ; j< n- 1 ; j++ ) {
lhs+= nums[ j] ;
rhs= tot_sum- lhs;
current_sum+= nums[ j] ;
if ( lhs == 2 * y && rhs == y ) {
count= count + f.getOrDefault ( current_sum/ 2 ,0 ) ;
}
f.put ( current_sum,f.getOrDefault ( current_sum,0 ) + 1 ) ;
}
}
System .
out .
print ( "Number of ways to divide in three equal parts :" + count
) ; }
}
Ly8gbm8gb2Ygd2F5cyB0byBkaXZpZGUgdGhlIGdpdmVuIGFycmF5IGludG8gMyBlcXVhbCBwYXJ0cwppbXBvcnQgamF2YS51dGlsLio7CnB1YmxpYyBjbGFzcyBNYWluCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKCQlpbnQgbj1zYy5uZXh0SW50KCk7CgkJaW50W11udW1zID0gbmV3IGludFtuXTsKCQkKCQlmb3IoaW50IGk9IDA7aTxuO2krKyl7CgkJICAgIG51bXNbaV09c2MubmV4dEludCgpOwoJCX0KCQlpbnQgdG90X3N1bT0wOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCSAgICB0b3Rfc3VtKz1udW1zW2ldOwoJCX0KCQlpbnQgbGhzPTA7CgkJaW50IHJocz0wOwoJCWludCBjb3VudD0wOwoJCQoJCWlmKHRvdF9zdW0lMyA9PTApewoJCSAgICBpbnQgeT10b3Rfc3VtLzM7CgkJICAgIAoJCSAgICAvL0kgbmVlZCBjdXJyZW50IHN1bSAKCQkgICAgaW50IGN1cnJlbnRfc3VtPTA7CgkJICAgIAoJCSAgICBIYXNoTWFwPEludGVnZXIsSW50ZWdlcj5mID0gbmV3IEhhc2hNYXA8PigpOwoJCSAgICAKCQkgICAgZm9yKGludCBqPTA7ajxuLTE7aisrKXsKCQkgICAgICAgIGxocys9bnVtc1tqXTsKCQkgICAgICAgIHJocz10b3Rfc3VtLWxoczsKCQkgICAgICAgIGN1cnJlbnRfc3VtKz1udW1zW2pdOwoJCSAgICAgICAgCgkJICAgICAgICBpZihsaHMgPT0gMip5ICYmIHJocyA9PXkgKXsKCQkgICAgICAgICAgY291bnQ9Y291bnQgKyBmLmdldE9yRGVmYXVsdChjdXJyZW50X3N1bS8yLDApIDsKCQkgICAgICAgIH0KCQkgICAgICAgIGYucHV0KGN1cnJlbnRfc3VtLGYuZ2V0T3JEZWZhdWx0KGN1cnJlbnRfc3VtLDApKzEpOwoJCSAgICB9CgkJfQoJCVN5c3RlbS5vdXQucHJpbnQoIk51bWJlciBvZiB3YXlzIHRvIGRpdmlkZSBpbiB0aHJlZSBlcXVhbCBwYXJ0cyA6IiArIGNvdW50KTsKCX0KfQ==