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

Обсуждение задачи 1285. Нитка в гиперкосмосе

What's wrong? Tests' incorect?
Послано pperm 30 июл 2007 23:57
Фрагмент кода при проверки лежит ли путь через сферу.
Почему то вещественная проверка проходит, а целочисленная нет. хотя в long long все должно влазить. Извините, что на русском, но писать на английском я совсем не могу)
    int i;
    long long a=0,b=0;
    for (i=0;i<maxd;i++)
    {
        a+=sqr(p2.x[i]-p1.x[i]);
        b+=(p2.x[i]-p1.x[i])*(x[i]-p1.x[i]);
    }
    if (b<0||b>a)
        return false;
//-AC-----------------------------------
    double t=(double)b/a;
    double rr=0;
    for (i=0;i<maxd;i++)
        rr+=sqr((p2.x[i]-p1.x[i])*t+p1.x[i]-x[i]);
    rr=sqrt(rr);
    return rr<r;
//-WA7-----------------------------------
    long long t=0;
    for (i=0;i<maxd;i++)
        t+=sqr((p2.x[i]-p1.x[i])*b+a*p1.x[i]-a*x[i]);
    return r*r*a*a>t;
}
//В задаче 1075 тоже самое только WA на 12 тесте.


Edited by author 31.07.2007 12:53
Re: What's wrong? Tests' incorect?
Послано Sandro (USU) 31 июл 2007 17:45
For example,
r=1000, a=8*(1000-(-1000))^2=32000000.
r*r*a*a > MaxLongLongInt.
Re: What's wrong? Tests' incorect?
Послано pperm 25 сен 2007 09:00
thank you))

Edited by author 25.09.2007 09:29
Re: What's wrong? Tests' incorect?
Послано pperm 25 сен 2007 09:52
Tests correct.
I AC with Long arithmetic.