Apply greedy approach
for ( $ i = 0 ; $ i < $ n / 2 ; $ i ++ ) { $ b [ $ i ] = max ( $ l , $ a [ $ i ] - $ r ) ; $ b [ $ n - $ i - 1 ] = $ a [ $ i ] - $ b [ $ i ] ; $ l = $ b [ $ i ] ; $ r = $ b [ $ n - $ i - 1 ] ; }