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

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

Показать все сообщения Спрятать все сообщения

WA #7 Why? wolfpro 31 авг 2013 16:53
#include <iostream>
#include <cmath>
#include <stdio.h>
int main()
{
    using namespace std;
    int nRadius, nLenght;
    double dAnswer, dPi = 3.141592654;
    cin >> nLenght >> nRadius;
    if (nRadius * nRadius >= nLenght * nLenght / 2) {
        dAnswer = nLenght * nLenght;
    } else if (nRadius <= nLenght / 2) {
        dAnswer = nRadius * nRadius * dPi;

    } else {
        double dX = sqrt(nRadius * nRadius - nLenght * nLenght / 4);
        double dSg = dPi * nRadius * nRadius / 360 * (360 - 8 * atan2(dX, nLenght / 2) *  57.296);
        dAnswer = dSg + 4 * nLenght / 2 * dX;
    }
    printf("%0.3f", dAnswer);

    return 0;
}

Edited by author 31.08.2013 17:00

Edited by author 31.08.2013 17:00
Re: WA #7 Why? oybek 17 май 2014 17:44
Firstly calculate all in radians, don't even think about degrees, because all
of cmath functions works in radians.
And you should change all integers to double.
Example: change 8 to 8.0 and so on.
Use standart pi constant M_PI

Check all functions.

Edited by author 17.05.2014 17:45