Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted by Emkas ( 16 years ago )
program PUN;
const MAXI = 1000000;
function MAX(i,j: longint):longint;
begin
if (i>j) then MAX:=i
else MAX:=j;
end;
var
tablica : array [1..MAXI]of integer;
lIteracji, wynik, suma, aktualnaSuma, polowaOkregu : longint;
i,j:integer;
begin
suma:=0;
readln(lIteracji);
for i:=1 to lIteracji do // wczytywanie danych
begin
read(tablica[i]);
suma:=suma+tablica[i];
end;
if (suma mod 2 = 0) then polowaOkregu:= suma div 2 // oblicznie polowy dlugosci okregu
else polowaOkregu:= suma div 2 + 1;
j:=1;
i:=1;
aktualnaSuma:=0;
wynik:=0;
while (j <= lIteracji) and (i <= lIteracji) do
begin
Inc(aktualnaSuma,tablica[j]);
if (aktualnaSuma < polowaOkregu) then begin
wynik:=MAX(wynik, aktualnaSuma);
j:=j+1;
end
else begin
wynik:= MAX(wynik, suma - aktualnaSuma);
aktualnaSuma:=aktualnaSuma - tablica[i];
aktualnaSuma:=aktualnaSuma - tablica[j];
i:=i+1;
end;
end;
write(wynik);
end.
Revise this Paste