Сыр для Анфисы
Готовя обед для Анфисы — символа 2008 года, хозяин использовал для разрезания сыра специальный нож, который разрезал сыр на одинаковые прямоугольные паралелепипеды с основанием в виде квадрата со стороной [latex]a[/latex] и высотой [latex]b[/latex].
Но Анфиса, как и подобает даме года, любила употреблять сыр несколько меньших размеров, для чего она всегда разрезала предложенный кусочек деликатеса на две части, предварительно установив его строго вертикально квадратом к столу. При разрезании нож всегда размещался по диагонали квадрата, но Анфисе не всегда удавалось разрезать кусочек пополам, так как плоскость лезвия ножа образовывала двугранный угол [latex]z^o[/latex] с плоскостью основания.
Найти площадь [latex]s[/latex] созданного Анфисой сечения.
Входные данные
Целые числа [latex]a[/latex], [latex]b[/latex], [latex]z[/latex], не превышающие [latex]90^o[/latex].
Выходные данные
Площадь [latex]s[/latex] образованного сечения с точностью до трех десятичных знаков.
Тесты
# | ВХОДНЫЕ ДАННЫЕ | ВЫХОДНЫЕ ДАННЫЕ |
---|---|---|
1 | [latex]2[/latex] [latex]3[/latex] [latex]90[/latex] | [latex]8.485[/latex] |
2 | [latex]2[/latex] [latex]4[/latex] [latex]0[/latex] | [latex]0.000[/latex] |
3 | [latex]1[/latex] [latex]2[/latex] [latex]3[/latex] | [latex]0.501[/latex] |
4 | [latex]1[/latex] [latex]1[/latex] [latex]100[/latex] | [latex]1.615[/latex] |
5 | [latex]3[/latex] [latex]10[/latex] [latex]48[/latex] | [latex]6.725[/latex] |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { double a, b, z, s; cin >> a >> b >> z; if ((1 / (tan (z * M_PI / 180)) > a / sqrt(2) / b) && (z != 0) && (z != 90)){ s = a * a / 2 / cos (z * M_PI / 180); } else if (z == 0) { s = 0; } else if (z == 90) { s = a * b * sqrt(2); } else { s = (a * sqrt(2) - b * 1 / (tan (z * M_PI / 180))) * b / sin (z * M_PI / 180); } cout << setprecision(3) << fixed << s; return 0; } |
Решение задачи
Для решения данной задачи нам нужно рассмотреть 4 случая:
1) Если [latex]\cot[/latex] заданного угла не будет превышать [latex]\frac{a} {\sqrt{2} \cdot b}[/latex] и также не будет равен [latex]0^o[/latex] и [latex]90^o[/latex], то фигурой сечения получится треугольник. Его площадь мы сможем найти по формуле [latex]s = \frac {a^{2}} {2 \cos (z \cdot \frac {\pi} {180})}[/latex].
2) Заданный угол = [latex]0^o[/latex], следовательно площадь сечения также будет = 0, так как сыр нормально и не порежут.
3) Заданный угол = [latex]90^o[/latex], фигурой сечения будет прямоугольник, площадь которого мы сможем найти по формуле [latex]s = a \cdot b \cdot \sqrt{2}[/latex].
4) В любом другом случае, получится трапеция, площадь которой мы найдем по формуле [latex]s = \frac {a \cdot \sqrt{2} — b \cdot 1} {tan(z \cdot \frac{\pi}{180})} \cdot \frac {b} {sin (z \cdot \frac {\pi}{180})}[/latex].
Ссылки
• Задача на e-olymp.
• Решение на сайте ideone.