Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- f : text;
- x, y, px, py, x1, y1, i, n : integer;
- s, p, a, b, c, str, per, maxiS, miniS, maxiP : real;
- cnt, ansN : longint;
- begin
- assign(f, 'input.txt');
- reset(f);
- miniS := 10000000000000000000000000000000000000007.0;
- maxiS := -1;
- cnt := 0;
- while not eof(f) do begin
- inc(cnt);
- read(f, n);
- read(f, x); read(f, y);
- read(f, x1); read(f, y1);
- s := 0.0;
- per := sqrt(sqr(x - x1) + sqr(y - y1));
- str := sqrt(sqr(x - x1) + sqr(y - y1));
- for i := 3 to n do begin
- px := x1; py := y1;
- read(f, x1); read(f, y1);
- a := sqrt(sqr(x1 - x) + sqr(y1 - y));
- b := sqrt(sqr(x1 - px) + sqr(y1 - py));
- c := sqrt(sqr(px - x) + sqr(py - y));
- p := (a + b + c) / 2;
- s := s + sqrt(p *(p - a) * (p - b) * (p - c));
- per := per + b;
- if (str - b) >= 0.001 then str := b;
- end;
- b := sqrt(sqr(x - x1) + sqr(y - y1));
- if (str - b) >= 0.001 then str := b;
- per := per + b;
- if miniS - str >= 0.001 then begin miniS := str; maxiS := s; ansN := cnt; maxiP := per; end
- else if (abs(str - miniS) < 0.001) AND ((s - maxiS) >= 0.001) then begin maxiS := s; ansN := cnt; maxiP := per; end;
- readln(f);
- end;
- close(f);
- writeln(ansN, ' ', maxiS : 0 : 3, ' ', maxiP : 0 : 3);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement