var i,j:longint;
n,t:int64;
a,b,left,r:array[0..100000] of int64;
function min(x,y:int64):int64;
begin
if x<=y then exit(x)
else exit(y);
end;
procedure nhap;
var i:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
end;
procedure giai;
begin
//L[i] = max(a[1],a[2],...,a[i])
left[1]:=a[1];
for i:=2 to n do
if a[i]>left[i-1] then left[i]:=a[i]
else left[i]:=left[i-1];
//R[i] = max(a[i],a[i+1],...,a[n]);
r[n]:=a[n];
for i:=n-1 downto 1 do
if a[i]>r[i+1] then r[i]:=a[i]
else r[i]:=r[i+1];
//tinh b[i]= so nuoc dong tren cot i
for i:=1 to n do
if min(l[i-1],r[i+1])>a[i] then
b[i]:=min(l[i-1],r[i+1])-a[i]
else
b[i]:=0;
//cot 1 va cot n chac chan khong co nuoc dong
t:=0;
for i:=2 to n-1 do t:=t+b[i];
writeln(t);
end;
begin
assign(input,'water.inp'); reset(input);
assign(output,'water.out');rewrite(output);
nhap;
giai;
close(input);close(output);
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
WATER 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.