Program grande_somme;
Type tab=array[1..50] of integer;
Var n,d,f:integer;
t:tab;
(****************************************)
Procedure saisies(var n:integer;var t:tab);
Var i:integer;
Begin
Repeat
Writeln('n = ');
Readln(n);
Until n in [5..50];
For i:=1 to n do
Begin
writeln('T[',i,'] = ');
readln(t[i]);
End;
End;
(*****************************************)
Procedure interval(n:integer;t:tab; var d,f:integer);
Var max,i,j,s:integer;
Begin
d:=1;
f:=1;
max:=T[1];
For i:=1 to n do
Begin
s :=0;
For j:=i to n do
Begin
s:= s + T[j];
If s > max Then
Begin 
d:=i;
f:=j;
max:=s;
End;
End;
End;
End;
(****************************************)
Procedure affiche(n,d,f:integer;t:tab);
Var i:integer;
Begin
Writeln('La plus grande somme est défini par les valeurs :');
For i:=d to f do 
Writeln(t[i],' ');
End;
(****************P.P************************)
Begin
saisies(n,t);
interval(n,t,d,f);
affiche(n,d,f,t);
End.
