Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- point=record
- x,y:longint;
- end;
- mn=record
- kol:longint;
- pt:array[1..30] of point;
- end;
- var
- f:text;
- st:real;
- min,ss,pp,ppp,minn,sss:real;
- i,nom,z:longint;
- m:mn;
- function r(a,b:point):real;
- begin
- r:=sqrt(abs(sqr(a.x-b.x)+sqr(a.y-b.y)));
- end;
- function s3(a,b,c:real):real;
- var
- p:real;
- begin
- p:=(a+b+c)/2;
- s3:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));
- end;
- function s(m:mn):real;
- var
- a,b,c:real;
- ss:real;
- begin
- ss:=0;
- for i:=2 to m.kol-1 do
- begin
- a:=r(m.pt[1],m.pt[i]);
- b:=r(m.pt[1],m.pt[i+1]);
- c:=r(m.pt[i+1],m.pt[i]);
- ss:=ss+s3(a,b,c);
- end;
- s:=ss;
- end;
- begin
- assign(f,'input.txt');
- reset(f);
- ss:=0;
- pp:=0;
- ppp:=0;
- nom:=0;
- min:=-1.0;
- minn:=-1.0;
- z:=0;
- while not(eof(f)) do
- begin
- read(f,m.kol);
- read(f,m.pt[1].x,m.pt[1].y);
- pp:=0;
- for i:=2 to m.kol do
- begin
- read(f,m.pt[i].x,m.pt[i].y);
- st:=r(m.pt[i],m.pt[i-1]);
- if (min=-1.0) or ((min-st)>=0.001) then min:=st;
- pp:=pp+st;
- end;
- inc(nom);
- st:=r(m.pt[1],m.pt[m.kol]);
- if (min=-1.0) or ((min-st)>=0.001) then min:=st;
- pp:=pp+st;
- ss:=s(m);
- if (minn=-1.0) or ((minn-min)>=0.001) then begin
- z:=nom;
- minn:=min;
- sss:=s(m);
- ppp:=pp;
- end;
- if (abs(min-minn)<0.001) and ((ss-sss)>=0.001) then
- begin
- sss:=ss;
- ppp:=pp;
- z:=nom;
- end;
- readln(f);
- end;
- close(f);
- writeln(z,' ',sss:0:3,' ',ppp:0:3);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement