H. Room Service
의견: 0
You are working for a company designing cute, funny robot vacuum cleaners. At a high level, the robots’ behavior is divided into three modes: 1. Exploration 2. Vacuuming 3. Rampant Killing Unfortunately, while consumer testing shows that the last two modes are working perfectly, the exp\(lo- ra\)tion mode still has bugs. You’ve been put in charge of debugging. At the beginning of the exploration mode, the robot is placed into a convex polygonal room. It has sensors that should tell it where all the walls are. Your job is to write a program that verifies that these readings are correct. To do this, the robot needs to physically touch every wall in the room. Your problem is this: given the shape of a convex polygonal room with \(N\) walls and a starting point \(P\) inside it, determine the shortest route that touches each wall and then returns to \(P\). Touching a corner counts as touching both incident walls.
Each test case starts with a line containing the number of vertices \(N\) of the polygon (\(3 \le N \le 100\)) and the integer coordinates \(P_{x}\) and \(P_{y}\) of the robot’s starting point (−\(10\,000 \le P_{x}\), \(P_{y} \le 10\,000\)). This is followed by \(N\) lines, each containing two integers \(x\), \(y\) (−\(10\,000 \le x\), \(y \le 10\,000\)) defining a vertex of the polygon. Vertices are given in counterclockwise order, all interior angles are less than 180 degrees, the polygon does not se\(lf-in\)tersect, and the robot’s starting point is strictly inside the polygon.
For each test case, display the case number and the length of the desired route, accurate to two decimal places.
4 0 0
-1 -1
1 -1
1 1
-1 1
3 10 1
0 0
30 0
0 20
Case 1: 5.66
Case 2: 36.73
평가 및 의견
H. Room Service
Log in to rate problems.
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
H. Room Service