Sample Input
0.000 0.000 0.000 1.000 0.000 1.000 1.000 1.000
1.000 0.000 3.500 3.500 3.500 3.500 0.000 1.000
1.866 0.000 3.127 3.543 3.127 3.543 1.412 3.145
Sample Output
1.000 0.000
-2.500 -2.500
0.151 -0.398
※第一個邊的2個點中必定有一個點與第二個邊的2個點其中之一相同。
import java.util.Scanner;
public class UVA10242 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
double a_x = sc.nextDouble();
double a_y = sc.nextDouble();
double b_x = sc.nextDouble();
double b_y = sc.nextDouble();
double c_x = sc.nextDouble();
double c_y = sc.nextDouble();
double d_x = sc.nextDouble();
double d_y = sc.nextDouble();
double answer_x = 0, answer_y = 0;
if (a_x == c_x && a_y == c_y) {
answer_x = b_x - a_x + d_x;
answer_y = b_y - a_y + d_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else if (a_x == d_x && a_y == d_y) {
answer_x = b_x - a_x + c_x;
answer_y = b_y - a_y + c_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else if (b_x == c_x && b_y == c_y) {
answer_x = a_x - b_x + d_x;
answer_y = a_y - b_y + d_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
else {
answer_x = a_x - b_x + c_x;
answer_y = a_y - b_y + c_y;
System.out.printf("%.3f %.3f", answer_x, answer_y);
System.out.println();
}
}
sc.close();
}
}