We can also take pre [ pos2 - 1 ] - pre [ pos1 ] == total_sum / 3 here .
if ( $ suf [ $ pos1 + 1 ] - $ suf [ $ pos2 ] == $ total_sum / 3 ) { return true ; } else { return false ; } } if ( $ pre [ $ i ] < $ suf [ $ j ] ) { $ i ++ ; } else { $ j -- ; } } return false ; } function equiSum ( $ arr ) { global $ pos2 , $ pos1 ; $ ans = equiSumUtil ( $ arr ) ; if ( $ ans ) { print ( " First ▁ Segment ▁ : ▁ " ) ; for ( $ i = 0 ; $ i <= $ pos1 ; $ i ++ ) { print ( $ arr [ $ i ] . " " ) ; } print ( " STRNEWLINE " ) ; print ( " Second ▁ Segment ▁ : ▁ " ) ; for ( $ i = $ pos1 + 1 ; $ i < $ pos2 ; $ i ++ ) { print ( $ arr [ $ i ] . " " ) ; } print ( " STRNEWLINE " ) ; print ( " Third ▁ Segment ▁ : ▁ " ) ; for ( $ i = $ pos2 ; $ i < count ( $ arr ) ; $ i ++ ) { print ( $ arr [ $ i ] . " " ) ; } print ( " STRNEWLINE " ) ; } else { println ( " Array ▁ cannot ▁ be ▁ divided ▁ into ▁ " , " three ▁ equal ▁ sum ▁ segments " ) ; } }