1. 程式人生 > >CSU 2079 覺醒!MACROSS!

CSU 2079 覺醒!MACROSS!

覺醒!MACROSS!

描述

西元2999年,一顆不明的巨大“流星”墜落在位於地球上的CSU(California State University)校園內。為此全世界的專家蜂擁而至,對此展開了密集研究。經過調查證實這其實是一艘外星人的宇宙船!之後世界的某些強國為了將其修復並彌補墜落時對地球環境所造成的破壞而組成了統合政府,交由新組建的地球統合軍將其改造成為全長1200公尺的超大型主力戰艦,並將其命名為MACROSS。此時CSU的名聲也已響徹海內外,新成立的宇宙軍事學院成為眾多艦隊軍官們的求學聖地。

就在10年後MACROSS舉行正式起用下水典禮的當天,在月球軌道附近突然發現有大規模的時空跳躍反應。而此時MACROSS的主炮竟自動發射,並擊中在月球出現的外星艦隊觀測艦!外星人Zentraedi艦隊和地球之間的星間戰爭爆發,作為艦隊年輕指揮官的你隨著MACROSS升空啟航,而我們的故事也就此拉開序幕。

正在星際間航行的MACROSS很快就面臨了來自外星艦隊的報復行動,大量的外星戰機編隊從四面八方逼近併發射鐳射武器。此刻你收到了來自艦長格羅巴爾將軍命令,要求立刻發射主炮予以還擊。經過十年的改造,MACROSS的輻射型主炮威力無窮,凡是射程範圍內的外界物體都將被給予毀滅性的打擊。因此你的工作只要合理的設定射程引數,以最小的代價消滅敵人。這是MACROSS覺醒後的第一場戰役,你準備好了嗎!?

覺醒!MACROSS!

覺醒!MACROSS!

Input

輸入資料第一行為一個正整數T(1 ≤ T ≤ 10),預示著MACROSS即將面臨多少波Zentraedi艦隊的報復行動。

每一波報復行動開始時,艦隊偵查部門都會發送一行訊息告訴你有_N_(1 ≤ N

 ≤ 105)艘敵機即將來臨。緊接著這些敵機相對於MACROSS的空間位置(xi, yi, zi) |xi|,|yi|,|zi|≤500也相應地傳送到你的控制檯上。

Output

對於每次攻擊,計算出最小所需射程後立刻輸出一行並回車確認發射。你的軍官生涯才剛剛開始,成敗在此一舉!

Sample Input

2
3
0 0 1
0 -1 0
1 0 0
5
52 75 -10
88 -13 44
56 9 5
-298 33 124
12 -70 8

Sample Output

1.00
324.45

Hint

輸入資料保證都為整數且射程只需精確到小數點後兩位。

題解

題目大意是給 n 個點,找到空間中最遠的點的距離就好了。程式碼如下:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>

using namespace std ;

int main(){
    int t ;
    scanf("%d" , &t) ;
    while ( t -- ){
        int n ;
        scanf("%d" , &n) ;
        double dis = -1 ;
        for ( int i = 0 ; i < n ; i ++ ){
            double a , b , c ;
            scanf("%lf %lf %lf" , &a , &b , &c) ;
            double index = sqrt( a * a + b * b + c * c ) ;
            dis = max( dis , index ) ;
        }
        printf("%.2f\n" , dis) ;
    }
    return 0 ;
}