本文主要是介绍1029:积雪清理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
小明所在的城市昨晚下了一场大雪,所有道路都被积雪覆盖了。为了保证交通畅通,需要动用除雪车清理道路上的积雪,但是整个城市只有一辆除雪车。
城市的每条道路都有两条行车道,除雪车可以单向清除一条道路的一条行车道上的积雪,并且除雪车可以在任意一个路口改变方向(包括U形转弯),同时在任意一条道路的尽头可以掉头(U形)到另一条行车道行驶。
除雪车在除雪时以20km/h的速度行驶,在积雪已经被清除的车道上则以50km/h的速度行驶。
现请你计算,除雪车清理完所有道路的所有车道,并且最后回到车库最少需要多长时间?
输入格式
输入的第一行包含两个整数x和y,表示停放除雪车的车库的坐标。
接下来若干行,每行输入四个实数x1,y1,x2,y2,表示某条道路的起始点坐标,所有道路均为直路。
车库的坐标一定位于某条道路的线段上。
输入中的所有坐标单位均为米。
输出
输出除雪车清理完所有道路的所有车道,并且最后回到车库最少需要多长时间,格式为hh:mm,结果将秒四舍五入到分。
样例输入
0 0
0 0 10000 10000
5000 -10000 5000 10000
5000 10000 10000 10000
样例输出
03:55
#include<stdio.h>
#include<math.h>
int main()
{
double x1,y1,x2,y2,s=0,t;
int m;
scanf("%*d%*d");
while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
s+=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
t=s/20000*2;
m=(t-(int)t)*60+0.5;
if(m==60)
printf("%02d:00\n",(int)t+1);
else
printf("%02d:%02d\n",(int)t,m);
return 0;
}
这篇关于1029:积雪清理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!