[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи с acm.timus.ru » Пакет решений на 15.03.08

1020
Var N,I,J,S: LongInt;
    R,L: Real;
    X,Y,Ang: Array[0..101] of Real;

Procedure ReChang(var A,B: Real);
Var V: Real;
Begin
  V:=A;
  A:=B;
  B:=V;
End;

Begin
  Readln(N,R);
  L:=2*Pi*R;
  S:=1;
  For I:=1 to n do begin
    Readln(X[I],Y[I]);
    If (I<>1) and (X[I]<X[S]) then S:=I;
  End;


  X[0]:=X[S];
  Y[0]:=Y[S];

  ReChang(X[S],X[N]);
  ReChang(Y[S],Y[N]);
  ReChang(Ang[S],Ang[N]);

  For I:=1 to n do
    If X[I]-X[N]<>0 then Ang[I]:=(Y[I]-Y[N])/(X[I]-X[N])
                    else if Y[I]<Y[N] then Ang[I]:=-65000
                                      else Ang[I]:=+65000;

  For I:=1 to N do
    For J:=2 to N do
      If Ang[J-1]>Ang[J] then begin
        ReChang(Ang[J-1],Ang[J]);
        ReChang(X[J-1],X[J]);
        ReChang(Y[J-1],Y[J]);
      End;

   For I:=1 to N do
     L:=L+Sqrt(Sqr(X[I]-X[I-1])+Sqr(Y[I]-Y[I-1]));

   Writeln(L:0:2);
End.
Категория: Пакет решений на 15.03.08 | Добавил: solver (15.03.2008)
Просмотров: 927