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

Обсуждение задачи 1246. Собака на привязи

To Admins
Послано Mihran Hovsepyan {2 kurs of <RAU>} 18 июл 2008 15:12
I can't find my mistake.
Can you sent me test#2 to <<mihran91@mail.ru>>?
this is my code


# include <iostream.h>
# include <math.h>
main ()
{
    double dx[50001],dy[50001];
    int i,n;
    double x0,y0,xk,yk,x1,y1;
    cin>>n;
    for(i=0;i<n;i++)
        cin>>dx[i]>>dy[i];
    dx[n]=dx[0];dy[n]=dy[0];
    xk=0.5*(dx[0]+dx[1]);
    yk=0.5*(dy[0]+dy[1]);
    x1=dx[0]-dx[1];
    y1=dy[0]-dy[1];
    y0=yk+0.00000001;
    x0=(xk*x1-y0*y1+yk*y1)/x1;
    double ma,mb,a[2],b[2],det,otv=0;
A:    for(i=0;i<n;i++)
    {
        a[0]=dx[i]-x0;
        a[1]=dx[i+1]-x0;
        b[0]=dy[i]-y0;
        b[1]=dy[i+1]-y0;
        ma=sqrt(a[0]*a[0]+b[0]*b[0]);
        mb=sqrt(a[1]*a[1]+b[1]*b[1]);
        det=a[0]*b[1]-b[0]*a[1];
        if(det>0)
            otv+=acos((a[0]*a[1]+b[0]*b[1])/(ma*mb));
        else
            otv-=acos((a[0]*a[1]+b[0]*b[1])/(ma*mb));
    }
    if(fabs(fabs(otv)-6.28318530717)>0.00001)
    {
        otv=0;
        y0=yk-0.00000001;
        x0=(xk*x1-y0*y1+yk*y1)/x1;
        goto A;
    }
    if(otv<0)
        cout<<"cw";
    else
        cout<<"ccw";
    return 0;
}
Re: To Admins
Послано Chmel_Tolstiy 18 июл 2008 15:25
Don't write such message to admins. I think they don't mail to you anything.