F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Race

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 125    Accepted Submission(s): 11


Problem Description
度度熊最近参加了一场劲跑比赛,但是这个劲跑比赛的规则比较特殊。比赛方预先在地上画了一些横线和竖线(可以认为这些线为无限长的直线),要求选手从指定的位置出发,在最短时间内按照规定的顺序经过所有的直线(只要到达直线上的任意一点即为经过)。为了帮助度度熊获胜,你能为他规划一条最短的线路吗?
 

Input
第一行为T,表示输入数据组数。
下面T组数据。每组数据中:
第一行为一个整数n,表示有n条直线。接下来n行,每行包含两个整数,表示一条直线。如果直线为竖线,则第一个整数为0,第二个整数为直线的横坐标x。如果直线为横线,则第一个整数为1,第二个整数为直线的纵坐标y。度度熊将从平面的原点出发。

限制条件:
1<=T<=10
1<=n<=10^6
-500<=x,y<=500
 

Output
对第i组数据,输出
Case #i:
然后输出一个实数,表示从原点出发按输入顺序经过所有直线的最短路径的长度。保留到小数点后3位。
 

Sample Input
1 3 0 1 1 1 0 2
 

Sample Output
Case #1: 2.236
 

Hint

度度熊需要按照规定的顺序经过所有的直线。如果度度熊不按照顺序经过直线,那么提前经过的直线是不算数的。
例如,假设度度熊需要按顺序经过直线1和直线2,那么如果度度熊在经过直线1之前经过了直线2,这是不算数的,
度度熊仍然需要在经过直线1后再次经过直线2。
但是度度熊可以经过直线1和直线2的交叉点而同时都算数。
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-08 07:50:50, Gzip enabled