Pro.ID21069 TitleEuclid Title链接http://10.20.2.8/oj/exercise/problem?problem_id=21069 AC17 Submit248 Ratio6.85% 时间&空间限制描述In one of his notebooks, Euclid gave a complex procedure for solving the following problem. With computers, perhaps there is an easier way.
In a 2D plane, consider a line segment AB, another point C which is not collinear with AB, and a triangle DEF. The goal is to find points G and H such that:
• H is on the ray AC (it may be closer to A than C or further away, but angle CAB is the same as angle HAB)
• ABGH is a parallelogram (AB is parallel to GH, AH is parallel to BG)
• The area of parallelogram ABGH is the same as the area of triangle DEF 输入Input consists of multiple datasets. Each dataset will consist of twelve real numbers, with no more than 3 decimal places each, on a single line. Those numbers will represent the x and y coordinates of points A through F, as follows:
xA yA xB yB xC yC xD yD xE yE xF yF
Points A, B and C are guaranteed to not be collinear. Likewise, D, E and F are also guaranteed to be non-collinear. Every number is guaranteed to be in the range from −1000.0 . . . 1000.0 inclusive.
End of the input will be a line with twelve zero values. 输出Description In one of his notebooks, Euclid gave a complex procedure for solving the following problem. With computers, perhaps there is an easier way.
In a 2D plane, consider a line segment AB, another point C which is not collinear with AB, and a triangle DEF. The goal is to find points G and H such that:
• H is on the ray AC (it may be closer to A than C or further away, but angle CAB is the same as angle HAB)
• ABGH is a parallelogram (AB is parallel to GH, AH is parallel to BG)
• The area of parallelogram ABGH is the same as the area of triangle DEF Input Input consists of multiple datasets. Each dataset will consist of twelve real numbers, with no more than 3 decimal places each, on a single line. Those numbers will represent the x and y coordinates of points A through F, as follows:
xA yA xB yB xC yC xD yD xE yE xF yF
Points A, B and C are guaranteed to not be collinear. Likewise, D, E and F are also guaranteed to be non-collinear. Every number is guaranteed to be in the range from −1000.0 . . . 1000.0 inclusive.
End of the input will be a line with twelve zero values. Output For each input set, print a single line with four floating point numbers. These represent points G and H, like this:
xG yG xH yH
Print all values to a precision of 3 decimal places. Print a single space between numbers. Sample Input 0 0 5 0 0 5 3 2 7 2 0 4
1.3 2.6 12.1 4.5 8.1 13.7 2.2 0.1 9.8 6.6 1.9 6.7
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Sample Output 5.000 0.800 0.000 0.800
13.756 7.204 2.956 5.304 Source 样例输入0 0 5 0 0 5 3 2 7 2 0 4
1.3 2.6 12.1 4.5 8.1 13.7 2.2 0.1 9.8 6.6 1.9 6.7
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 样例输出5.000 0.800 0.000 0.800
13.756 7.204 2.956 5.304 作者 |