/SEG - Chia đoạn

<Problem>

http://ntucoder.net/Problem/Details/3369
              Uses Crt;
        Var a,b:array[0..1000000] of int64; 
                n,i,d,j,max:longint;
                s:int64;
        Begin
            readln(n);
            a[0]:=0;
            for i:=1 to n do
            begin
                readln(a[i]);
                b[i]:=b[i-1]+a[i];
            end;
            max:=0;
            for i:=1 to n do
            begin
                if (b[n] mod b[i]=0) and (b[n] div b[i]>max) then
                begin
                    //writeln(a[i]);
                    j:=i+1; d:=1;  s:=0;
                    while j<=n do
                    begin
        
                        s:=s+a[j]; //writeln('s',s); delay(2000);
        
                        if s=b[i] then begin
                                //writeln(s,' ','+');
                                inc(d);
                                s:=0;
                        end
                        else
                        if s>b[i] then begin break; end;
                        inc(j);
                    end;
                    if (j>=n) and (max<d) then max:=d;
                end;
            end;
            writeln(max);
            readln;
        End.