题目描述
元2999年,一颗不明的巨大“流星”坠落在位于地球上的ESCU(Eating Sleeping Coding University)校园内。为此全世界的专家蜂拥而至,对此展开了密集研究。经过调查证实这其实是一艘外星人的宇宙船!之後世界的某些强国为了将其修复并弥补坠落时对地球环境所造成的破坏而组成了统合政府,交由新组建的地球统合军将其改造成为全长1200公尺的超大型主力战舰,并将其命名为MACROSS。此时ESCU的名声也已响彻海内外,新成立的宇宙军事学院成为众多舰队军官们的求学圣地。
就在10年后MACROSS举行正式起用下水典礼的当天,在月球轨道附近突然发现有大规模的时空跳跃反应。而此时MACROSS的主炮竟自动发射,并击中在月球出现的外星舰队观测舰!外星人Zentraedi舰队和地球之间的星间战争爆发,作为舰队年轻指挥官的你随着MACROSS升空启航,而我们的故事也就此拉开序幕。
正在星际间航行的MACROSS很快就面临了来自外星舰队的报复行动,大量的外星战机编队从四面八方逼近并发射激光武器。此刻你收到了来自舰长格罗巴尔将军命令,要求立刻发射主炮予以还击。经过十年的改造,MACROSS的辐射型主炮威力无穷,凡是射程范围内的外界物体都将被给予毁灭性的打击。因此你的工作只要合理的设置射程参数,以最小的代价消灭敌人。这是MACROSS觉醒后的第一场战役,你准备好了吗!?
输入
输入数据第一行为一个正整数T(1 ≤ T ≤ 10),预示着MACROSS即将面临多少波Zentraedi舰队的报复行动。
每一波报复行动开始时,舰队侦查部门都会发送一行讯息告诉你有N(1 ≤ N ≤ 105)艘敌机即将来临。紧接着这些敌机相对于MACROSS的空间位置(xi, yi, zi) |xi|,|yi|,|zi|≤500也相应地传送到你的控制台上。
输出
对于每次攻击,计算出最小所需射程后立刻输出一行并回车确认发射。你的军官生涯才刚刚开始,成败在此一举!
思路
最小所需距离就是距原点最远的那个点到原点的距离
AC代码
#include <iostream>
#include <stdio.h>
#include <queue>
#include <set>
#include <string>
#include <map>
#include <cmath>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
const int maxn = 2e5 + 5;
const int inf = 0x3f3f3f3f;
int main()
{
int t, n;
double a, b, c, ans;
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
scanf("%lf %lf %lf", &a, &b, &c);
double ne = sqrt(a * a + b * b + c * c);
if (i == 1)
ans = ne;
else
ans = max(ans, ne);
}
printf("%.2lf\n",ans);
}
return 0;
}