Решение задачи
{Выпуклый 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.

