Greatest subsequential sum: Difference between revisions

Line 168:
 
T subsum(T = int)(T[] a) {
T sum = 0 ;
foreach(e ; a)
sum += e ;
return sum ;
}
 
T[] submax(T = int)(T[] a) {
T[] maxsub ;
T maxsum = T.min ;
for(int i = 0 ; i < a.length ; i++)
for(int j = i + 1 ; j <= a.length ; j++)
if maxsum = (maxsum <= a[i..j].subsum()){ ? (maxsub = a[i..j].dup).subsum() : maxsum ;
return (maxsum >= a0 ) ? maxsub : new T[i..j0].subsum() ;
maxsub= a[i..j].dup ;
}
return maxsub ;
}
 
void main() {
auto int[] array = [-1L1 , -2 , 3 , 5 , 6 , -2 , -1 , 4 , -4 , 2 , -1] ;
writefln("sum of %s = %s", array.submax(), array.submax().subsum()) ;
array = [-1 , -2 , -3 , -5 , -6 , -2 , -1 , -4 , -4 , -2 , -1] ;
}</pre>
writefln("sum of %s = %s", array.submax(), array.submax().subsum()) ;
}
}</pre>
 
=={{header|Forth}}==
Anonymous user