📄 d.cpp
字号:
#include <fstream>
#include <cmath>
#include <iostream>
using namespace std;
ifstream fin("d.in");
//#define endl '\n'
//#define double long double
const double PI = acos(0.0) * 2;
main() {
cout.precision(3);
cout.setf(ios::fixed, ios::floatfield);
int cases, pcase;
fin >> cases;
for (pcase = 0; pcase < cases; pcase++) {
double a, b, c, tmp;
fin >> a >> b >> c;
if (a > b) tmp = a, a = b, b = tmp;
if (a > c) tmp = a, a = c, c = tmp;
if (b > c) tmp = b, b = c, c = tmp;
double p = (a + b + c) / 2, s = sqrt(p * (p - a) * (p - b) * (p - c));
double DM = sqrt((a * a + b * b + c * c + 4 * sqrt(3.0) * s) / 2);
double cosC = (a * a + b * b - c * c) / (2 * a * b);
if (acos(cosC) > 2 * PI / 3 - 1e-8) cout << a + b << ' '; else cout << DM << ' ';
double x = (a + b - c) / 2, y = (a - b + c) / 2, z = (-a + b + c) / 2, h = s / p;
double DI = sqrt(x * x + h * h) + sqrt(y * y + h * h) + sqrt(z * z + h * h);
cout << DI << ' ';
double DG = 2.0 / 3 *
(sqrt((2 * (a * a + b * b) - c * c) / 4)
+ sqrt((2 * (a * a + c * c) - b * b) / 4)
+ sqrt((2 * (b * b + c * c) - a * a) / 4));
cout << DG << ' ';
double DO = 3 * (c / 2 / sqrt(1 - cosC * cosC));
if (fabs(a + b - c) < 1e-8) cout << -1.0 << endl; else cout << DO << endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -