Задача про Козла и площадь огорода. C++

109
04 июня 2019, 14:20

Есть такая задача, условие ниже. Написал свой код - решение в 3 из 10 тестов неверное, формула вроде правильная, на тестовом условии тоже ответ верный. Где ошибка и как исправить? Скорее всего ошибка в формуле, я думаю

Мой код :

#include <cmath>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
    ifstream inp;
    ofstream otp;
    inp.open("input.txt");
    otp.open("output.txt");
    const double pi = acos(-1);
    double r = 0, l = 0, S = 0, a = 0;
    inp >> l >> r;
    S = pi * r * r;
    if (l <= 2 * r) {
        a = acos(l / 2 / r);
        S -= 4 * (a * r * r - l / 2 * r * sin(a));
    }
    otp << fixed << setprecision(6) << S;
    return 0;
}
Answer 1

Как вариант - чтоб без синусов арккосинусов :)

double a, r, pi = 3.1415926;
cin >> a >> r;
cout << setprecision(7);
if (2*r <= a) cout << pi*r*r;
else if (r >= a/sqrt(2.0)) cout << a*a;
else cout << pi*r*r*(1-4*acos(a/2/r)/pi)+2*a*sqrt(r*r-a*a/4);
cout << endl;
READ ALSO
Code::Blocks, Clang, C++, Windows 10, не может найти windows.obj

Code::Blocks, Clang, C++, Windows 10, не может найти windows.obj

Пытаюсь сделать GUI для своей программыПереключил тип с Console на GUI

121
Qt. Undefined reference to

Qt. Undefined reference to

Имеются следующие файлы:

141
Возвращение значение по указному ключу

Возвращение значение по указному ключу

В Map, в качестве ключа, я хочу искользовать собственный объект, ну положим Item, с переопределёнными методами hashCode и equalsНо когда я хочу получить...

153