T1068 救援
作者:Alter hund(一只正经的手拿AK-74的编程狗)
PS:因作者未想出合适代码,故此篇代码非作者本人原创,是作者老师的原创作品。
震惊 多个沙雕因洪灾被困数个屋顶,救援船队火速前往救援。那么如何快速救出被困沙雕呢?敬请收看今天的(消防讲堂)题解
题目
救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标和人数都将由输入决定,求出所有人都到达大本营并登陆所用的时间。
在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表示。
救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶。达到一个屋顶后,救下其上的所有人,每人上船 11 分钟。然后船原路返回,回到大本营,每人下船 0.5 分钟。假设原点与任意一个屋顶的连线不穿过其它屋顶
输入格式
第一行,一个整数,表示屋顶数n(1<=n<=100),接下来依次有n行输入,每一行前两个实数表示屋顶相对于大本营的平面坐标位置(xi,yi)(单位是米),然后一个表示人数的整数r,数之间以一个空格分开。(0<=xi,yi<=100,1<=r<=100)
输出格式
一行,救援需要的总时间,精确到分钟(向上取整)
在认真(suibian)读完题后,下一步就是利用我们聪明的大脑和灵巧的双手来画流程图了(滑稽.jpg 滑稽.jpg)
流程图
在经过我的细致(xiajiba)分析后,我们得出了以下流程图:
在做出流程图后,老规矩,我们就要进入鸡冻人心de写程序时刻了!(礼花.jpg)
程序
#include<iostream>
#include<cmath>
using namespace std;
int num[101];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>position[i]
[0]>>position[i][1];
cin>>num[i];
}
double result=0;
for(int i=0;i<n;i++){
result+=(2*((sqrt(position[i][0]*position[i][0]+position[i][1]*position[i][1]))/50.0)+num[i]*1.5);
}
int out=int(result);
if(out<result){
cout<<out+1<<endl;
}
else{
cout<<out<<endl;
}
return 0;
}