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

Обсуждение задачи 1084. Пусти козла в огород

Why WA on test #4
Послано nikhil 22 июн 2020 17:33
#include <bits/stdc++.h>

#define gif(a,b) ((a)/(b)+((a)%(b)?1:0))
#define float long double
#define int long long
//#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define w(x) cout<<(#x)<<" is "<<(x)<<"\n";
using namespace std;

int32_t main()
{
    //IOS
    float a, r;
    cin >> a >> r;
    float theta = acos(a/(2*r));


    float s = sin(theta);

    float pi = acos(-1);
    if(a/2 > r)
        printf("%0.3Lf",pi*r*r);
    else if(r > a/pow(2, 0.5))
        cout << a*a;
    else
    cout << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ;
    return 0;
}
Re: Why WA on test #4
Послано FATNOT 22 июн 2020 19:29
Проблема с точностью. исправьте "cout << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ;" на "cout << fixed << setprecision(3) << (pi*r*r) - 4*(r*r*theta - a*r*s/2) ;".
UPD: Попрошу не выкладывать свой код на форуме, он создан для обсуждения, а не для выкладывания на нем готовых решений. Поэтому прошу его убрать.

Edited by author 22.06.2020 19:34