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

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

here is the trick!
Послано gush(gu_shenhua@yahoo.com.cn) 28 июл 2003 22:00
this may be true: 1.000 > 1.
so add this func:
    double acos1(double x)
    {
        if(x > 1)
          x = 1;
        if(x < -1)
          x = -1;
        return acos(x);
    }
Re: here is the trick!
Послано Fly [Yaroslavl_SU] 29 сен 2005 00:47
BIG thanks!!!
Re: here is the trick!
Послано Zhihua Lai 29 май 2007 22:50
Big thanks, god, without that, my program was stopped at test 8.
Re: here is the trick!
Послано Denis Koshman 3 авг 2008 11:33
It's actually 1.00000000000000001, not 1.000

BTW, same stuff should be applied to 'sqrt'. if(v<0 && v>-eps) v = 0; sqrt(v);
Re: here is the trick!
Послано Oracle[Lviv NU] 9 янв 2009 00:22
THANKS!!!!!!!!!!
It really helped me! After small fix - AC :)
Re: here is the trick!
Послано Enzo 10 июн 2010 08:10
thanks so much, i got ac with your func...
Re: here is the trick!
Послано MishaRash 31 июл 2015 13:15
Thank you very much! I had WA 24, "safe" acos didn't help, but "safe" sqrt did, I got AC. I used it so:
double sqrt1(double a) {
  if (a<0)
    return 0;
  return sqrt(a);
}

Edited by author 31.07.2015 13:17
Re: here is the trick!
Послано Tbilsu_Irakli Khomeriki 17 сен 2018 20:09
thanks a lot, never would have figured out :)