题目
救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标和人数都将由输入决定,求救出所有人,并且都到达大本营并登录所用的时间。直角坐标系的原点是大本营,救生船每次从大本营出发,救了人后将人送回大本营,坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表示,救生船每次从大本营出发, 以速度50米每分钟驶向下一个屋顶,达到一个屋顶点后,救下其屋顶上的所有人,每人上船1分钟,船原路返回,到达大本营后,每人下船0.5分钟。假设原点与任意一个屋顶的连线不穿过其他屋顶。
输入
第一行,一个整数,表示屋顶数,接下来依次输入n行,每行中包含三个数,前两个数表示屋顶相对于大本营的平面坐标的x,y位置(实数,单位为米),最后一个表示人数(整数)。
输出
输出救完所有人所需要的总时间,向上取整精确到分钟
输入样例
1
30 40 3
输出样例
7
代码
#include <stdio.h>
#include <math.h>
int main() {
int n, r;
scanf("%d", &n);//输入屋顶的数量
double x, y, t, sum;
sum = 0.0;
for (int i = 0; i < n; i++) {
scanf("%lf %lf %d", &x, &y, &r);
x = sqrt(pow(x, 2) + pow(y, 2));//求出坐标到原点的距离
t = x / 50;//求出原点到屋顶的时间
sum = sum + r * 1.5 + t * 2;
//每个人上船下船一共需要1.5分钟,救生船需要从原点到屋顶,再从屋顶到原点
}
printf("%0.0lf", ceil(sum));//ceil向上取整,返回类型为double
return 0;
}