var n,i,j,x,k,y,max:longint;
a,f,min:array[0..100001] of int64;
procedure nhap;
begin
readln(n);
for i:=1 to n do
read(a[i]);
end;
procedure tinh_f;
begin
f[0]:=0;
for i:=1 to n do
f[i]:=f[i-1]+a[i];
end;
end;
procedure tinh_min;
begin
min[0]:=0;
for i:=1 to n do
If f[i]<f[min[i-1]] then min[i]:=i
else min[i]:=min[i-1];
end;
procedure giai;
begin
i:=min[n];j:=n;
repeat
while (i<j) and (f[j]-f[i]<=0) do dec(j);
IF j-i>max then
begin
max:=j-i;
x:=i;
y:=j;
end;
IF i=0 then break;
i:=min[i-1];
until false;
write(x+1,' ',y);
end;
begin
assign(input,'PS.inp');reset(input);
assign(output,'PS.out');rewrite(output);
nhap;
tinh_f;
tinh_min;
giai;
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Ba, 3 tháng 5, 2022
PS PASCAL
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.