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

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

easy solution in c++
Послано Yucheng 2 мар 2019 14:50
#include<iostream>
#include<cmath>
#include<iomanip>
#define pi 3.1415926
using namespace std;

int main(){
    float side,len;
    cin>>side>>len;
    if(len>(side/2)*sqrt(2)){
        cout<<fixed<<setprecision(3)<<side*side;
        return 0;
    }
    if((side/2)>=len){
        cout<<fixed<<setprecision(3)<<len*len*pi;
        return 0;
    }
    float cosx=(side/2)/len;
    float sinx=sqrt(1-cosx*cosx);
    float cosA=2*sinx*cosx;
    float theta=acos(cosA);
    cout<<fixed<<setprecision(3)<<len*len*0.5*theta*4+sqrt(len*len-(side/2)*(side/2))*(side/2)*4;

return 0;
}