Advertisement
Guest User

Untitled

a guest
May 20th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. type
  2. point=record
  3. x,y:longint;
  4. end;
  5. mn=record
  6. kol:longint;
  7. pt:array[1..30] of point;
  8. end;
  9. var
  10. f:text;
  11. st:real;
  12. min,ss,pp,ppp,minn,sss:real;
  13. i,nom,z:longint;
  14. m:mn;
  15. function r(a,b:point):real;
  16. begin
  17. r:=sqrt(abs(sqr(a.x-b.x)+sqr(a.y-b.y)));
  18. end;
  19. function s3(a,b,c:real):real;
  20. var
  21. p:real;
  22. begin
  23. p:=(a+b+c)/2;
  24. s3:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));
  25. end;
  26. function s(m:mn):real;
  27. var
  28. a,b,c:real;
  29. ss:real;
  30. begin
  31. ss:=0;
  32. for i:=2 to m.kol-1 do
  33. begin
  34. a:=r(m.pt[1],m.pt[i]);
  35. b:=r(m.pt[1],m.pt[i+1]);
  36. c:=r(m.pt[i+1],m.pt[i]);
  37. ss:=ss+s3(a,b,c);
  38. end;
  39. s:=ss;
  40. end;
  41. begin
  42. assign(f,'input.txt');
  43. reset(f);
  44. ss:=0;
  45. pp:=0;
  46. ppp:=0;
  47. nom:=0;
  48. min:=-1.0;
  49. minn:=-1.0;
  50. z:=0;
  51. while not(eof(f)) do
  52. begin
  53. read(f,m.kol);
  54. read(f,m.pt[1].x,m.pt[1].y);
  55. pp:=0;
  56. for i:=2 to m.kol do
  57. begin
  58. read(f,m.pt[i].x,m.pt[i].y);
  59. st:=r(m.pt[i],m.pt[i-1]);
  60. if (min=-1.0) or ((min-st)>=0.0001) then min:=st;
  61. pp:=pp+st;
  62. end;
  63. inc(nom);
  64. st:=r(m.pt[1],m.pt[m.kol]);
  65. if (min=-1.0) or ((min-st)>=0.0001) then min:=st;
  66. pp:=pp+st;
  67. ss:=s(m);
  68. if (minn=-1.0) or ((minn-min)>=0.0001) then begin
  69. z:=nom;
  70. minn:=min;
  71. sss:=s(m);
  72. ppp:=pp;
  73. end;
  74.  
  75. if (abs(min-minn)<0.0001) and ((sss-ss)>=0.0001) then
  76. begin
  77. sss:=ss;
  78. ppp:=pp;
  79. z:=nom;
  80. end;
  81. readln(f);
  82. end;
  83. close(f);
  84. writeln(z,' ',sss:0:3,' ',ppp:0:3);
  85. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement