program BodyNaKruznici; {Nalezeni dvojice bodu na prumeru kruznice} const MaxN = 100; {maximalni pocet bodu na kruznici} var D: array[1..MaxN] of integer; {vzdalenosti sousednich bodu} N: integer; {pocet bodu} V: integer; {delka pulkruznice} J, K: integer; {vymezeni zkoumaneho useku} Soucet: integer; {delka zkoumaneho useku} begin {Zadani vstupnich hodnot a vypocet delky pulkruznice:} writeln('Vzajemne vzdalenosti dvojic sousednich bodu'); writeln('v poradi A1A2, A2A3, ..., ANA1:'); N := 0; V := 0; while not eof do begin N := N+1; read(D[N]); V := V+D[N] end; if odd(V) then {licha delka kruznice} writeln('Licha delka kruznice - uloha nema reseni!') else {suda delka kruznice} begin V := V div 2; {delka pulkruznice} {Vlastni hledani dvojice bodu na prumeru kruznice:} J := 1; K := 1; Soucet := 0; while (Soucet <> V) and (K <= N) do if Soucet < V then begin Soucet := Soucet + D[K]; K := K+1 {zvyseni horni meze zkoumaneho useku} end else begin Soucet := Soucet - D[J]; J := J+1 {zvyseni dolni meze zkoumaneho useku} end; if Soucet = V then writeln('Na prumeru lezi body s indexy ', J, ' a ', K) else writeln('Uloha nema reseni!') end end.