想要在陌生的地方不迷路,分清楚方向是很重要的,看星星就是一個很好的輔助方法。在一段時間內每晚的同一時間,天上星星的排布是幾乎不變的。每顆星星的亮暗程度都有一個標識,稱為星等,用一個實數來表示。這個實數的值越小,代表星星越亮,在燈光明亮的城市中能看到的星星的星等范圍為 - ~ 3.5等左右。
Map同學害怕丟掉Map這個稱號,每晚都勤勞地記下當天帝都星星的排布情況。他面向正北方向站立,將看到的天空映射到一張巨大的直角坐標系上,那麼每顆星星都擁有了一個坐標。
這天Map同學來到了美麗的哈爾濱,抬頭看見了最亮的星星木星和第二亮的北河三。他朝向他以為的北方站立,像在帝都一樣地計算出它們的坐標。但實際上他並不是總能憑直覺找到北的。而且對於使用的坐標系的刻度的大小也沒有辦法把握。
那麼現在他想知道,最少需要轉多少角度,他才能夠面向正北。
第一行為數據組數t(t<=1000)。
接下來,對每組數據:
第一行為n(2<=n<=1000),表示前一天在帝都看到的星星的數量。
以下為n行,每行3個實數,分別為n顆星星的坐標和星等。
最後一行為4個實數,分別為木星和北河三的坐標。
以上實數絕對值不超過1000。π取3.14159265358。
輸出一行,為所需要轉的最小角度,保留3位小數。
1 2 0 0 -2 1 0 0 0 0 0 1.2
90.000
#include#include #define PI 3.14159265358 typedef struct nnn { double x,y,d; }node; int main() { int t,n; double s,jd,x,y,dis[2]; node star[2],st[2],xl[2]; scanf("%d",&t); while(t--) { scanf("%d",&n); jd=10000; star[0].d=star[1].d=10000; for(int i=0;i 180)jd=360-jd; printf("%.3lf\n",jd); } }