ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1020. Ниточка

Please help me! Why WA????
Послано Sergey 22 июн 2003 00:23
my prog:

{$N+}
const nmax = 102;
      p=3.1415926535897932385;
var x,y:array[1..nmax] of real;
    r:extended;
function dist(a,b:byte):extended;
begin dist:=sqrt(sqr(x[b]-x[a])+sqr(y[b]-y[a])); end;
function ugol(a:integer):extended;
var cosa,x1,x2,y1,y2:extended;

begin
  x1:=x[a-1]-x[a];y1:=y[a-1]-y[a];
  x2:=x[a+1]-x[a];y2:=y[a+1]-y[a];
  cosa:=(x1*x2+y1*y2)/(sqrt(sqr(x1)+sqr(y1))*sqrt(sqr(x2)+sqr(y2)));
  if cosa=0 then ugol:=p/2
  else ugol:=arctan(sqrt(1/sqr(cosa)-1));
end;
function duga(a:integer):extended;
begin
  duga:=r*ugol(a);
end;
var i,n:longint;
    s:extended;
begin
readln (n,r);
  for i:=1 to n do
    readln (x[i],y[i]);
x[n+1]:=x[1];y[n+1]:=y[1];
x[n+2]:=x[2];y[n+2]:=y[2];
if n=1 then begin s:=2*p*r; writeln (s:0:2); exit; end;
if n=2 then begin s:=2*p*r+dist(1,2); writeln (s:0:2); exit; end;
  for i:=1 to n do begin
    s:=s+dist(i,i+1);
    s:=s+duga(i+1);
  end;
writeln (s:0:2);
end.
Re: Please help me! Why WA????
Послано Olympic Bear 27 июн 2003 22:21
zadacha delaetca gorazdo proshe:

program rope;
var x1,x2,y1,y2,a,b,sum,r:real;
n,i:integer;
begin
sum:=0;
read(n);read(r);
read(x1);read(y1);
a:=x1;b:=y1;
for i:=2 to n do begin
read(x2);read(y2);
sum:=sum+sqrt(sqr(x2-x1)+sqr(y2-y1));
x1:=x2;y1:=y2 end;
sum:=sum+sqrt(sqr(x1-a)+sqr(y1-b));
sum:=sum+2*pi*r;
writeln(sum:1:2)
end.

inace teraetca tochnost !!!
Re: Please help me! Why WA????
Послано PW 10 авг 2003 20:37
>Did you start prog with rope=0;