int
max_subsequence_sum( int a[], unsigned int n )
{
int this_sum, max_sum, best_i, best_j, i, j;
/*1*/ i = this_sum = max_sum = 0; best_i = best_j = -1;
/*2*/ for( j=0; j<n; j++ )
{
/*3*/ this_sum += a[j];
/*4*/ if( this_sum > max_sum )
{ /* update max_sum, best_i, best_j */
/*5*/ max_sum = this_sum;
/*6*/ best_i = i;
/*7*/ best_j = j;
}
else
/*8*/ if( this_sum < 0 )
{
/*9*/ i = j + 1;
/*10*/ this_sum = 0;
}
}
/*11*/ return( max_sum ); what's the meaning of the (best_i best_j ) and why they best_i=best_j=-1