Решение задачи
{Выпуклый n-угольник(n>3) задаётся коорд. своих вершин в порядке обхода. Разбить его на треуг. диагоналями, не пересек.,так,чтобы сумма длин диагоналей была минимальной}
uses crt; const nmax=10; var x,y:array [1..nmax] of longint; s : array [1..nmax] of real; n,i,a,j : integer; min : real; q : boolean; function rast(n1,n2:integer):real; begin rast:=sqrt(sqr(x[n1]-x[n2]) +sqr(y[n1]-y[n2])); end; begin clrscr; repeat; q:=true; write('кол-во углов n='); readln(n); if n>nmax then begin writeln('слишком большое n (n<=',nmax,').'); q:=false; end; if n<4 then begin if n<3 then writeln('Такой фигуры не существует (n>3).') else writeln('В треугольнике нет диагоналей!!'); q:=false; end; until q; for i:=1 to n do begin write('x[',i,']='); readln(x[i]); write('y[',i,']='); readln(y[i]); writeln; end; for i:=1 to nmax do s[i]:=0; for i:=1 to n do begin for j:=1 to n-3 do begin a:=i+j+1; if a>n then a:=a-n; s[i]:=s[i]+rast(i,a); end; end; min:=s[1]; a:=1; for i:=1 to n do begin if min>s[i] then begin a:=i; min:=s[i]; end; end; writeln('Ответ: из точки № ',a); readln; end.