您的位置:首页 > 其它

Timus 1294 Mars Satellites

2016-04-20 13:10 309 查看
题目:Mars Satellites

题意:一个圆上按顺序分布点a,b,c,d,给出ac,ad,bc,bd的值,求cd距离。

解法:利用余弦定理,圆上的四边形对角cos值相等,cos< ADC >=(ad^2+cd^2-ac^2)/(2*ad*cd) , cos < BCD > = (bc^2+cd^2-bd^2)/(2*bc*cd) , 解出cd

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
double ad, ac, bd, bc;

int main() {
cin >> ad >> ac >> bd >> bc;
if (ad*ac == bc*bd) {
cout << "Impossible." << endl;
return 0;
}
double ans = ((ad*ad+ac*ac)*2*bc*bd-(bc*bc+bd*bd)*2*ac*ad)/(2*bc*bd-2*ac*ad);
if (ans < 0) {
cout << "Impossible." << endl;
return 0;
}
ans = sqrt(ans);
printf("Distance is %.0lf km.\n", ans*1000);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: