2009年2月27日 星期五

Q10242: Fourth Point!!

/*
利用平行四邊形的 座標和(sum) 性質
Run time: 0.000
*/
#include <stdio.h>
double arr[4][2];
int test();
void calculate(int n);
int main()
{
int i, j;
int state;

while (scanf("%lf", &arr[0][0]) != EOF)
{
scanf("%lf", &arr[0][1]);
for ( i = 1; i < 4; i++)
scanf("%lf%lf", &arr[i][0], &arr[i][1]);

state = test();
calculate(state);
}
return 0;
}

int test()
{
int state;

if (arr[0][0] == arr[2][0] && arr[0][1] == arr[2][1])
state = 1;
else
if (arr[0][0] == arr[3][0] && arr[0][1] == arr[3][1])
state = 2;
else
if (arr[1][0] == arr[2][0] && arr[1][1] == arr[2][1])
state = 3;
else
state = 4;

return state;
}

void calculate(int n)
{
double x, y;

if (n == 1)
{
x = arr[1][0]+arr[3][0]-arr[0][0];
y = arr[1][1]+arr[3][1]-arr[0][1];
printf("%.3lf %.3lf\n", x, y);
return;
}
if (n == 2)
{
x = arr[1][0]+arr[2][0]-arr[0][0];
y = arr[1][1]+arr[2][1]-arr[0][1];
printf("%.3lf %.3lf\n", x, y);
return;
}

if (n == 3)
{
x = arr[0][0]+arr[3][0]-arr[1][0];
y = arr[0][1]+arr[3][1]-arr[1][1];
printf("%.3lf %.3lf\n", x, y);
return;
}

if (n == 4)
{
x = arr[0][0]+arr[2][0]-arr[1][0];
y = arr[0][1]+arr[2][1]-arr[1][1];
printf("%.3lf %.3lf\n", x, y);
return;
}
}

沒有留言: