2011年11月11日 星期五

ACM 10242 Fourth Point!!

一開始吃了個WA以為是邏輯錯誤,原來是我沒搞懂題目,看了Lucky貓才知道:

第一個邊的2個點中必定有一個點與第二個邊的2個點其中之一相同。





#include <stdio.h>

int main(void)
{
    double x[4], y[4], temp;
    int i, j, jmp;

    while (scanf("%lf%lf%lf%lf%lf%lf%lf%lf",
                 &x[0], &y[0], &x[1], &y[1], &x[2], &y[2], &x[3], &y[3]) == 8)
    {
        jmp = 0;
        for (i = 0; i < 2; i++)
        {
            for (j = 2; j < 4; j++)
                if (x[i] == x[j] && y[i] == y[j])
                {
                    jmp = 1;
                    break;
                }
            if (jmp)
                break;
        }

        temp = x[1], x[1] = x[i], x[i] = temp;
        temp = y[1], y[1] = y[i], y[i] = temp;

        temp = x[2], x[2] = x[j], x[j] = temp;
        temp = y[2], y[2] = y[j], y[j] = temp;

        printf("%.3f %.3f\n", x[0]+x[3]-x[1], y[0]+y[3]-y[1]);
    }
    return 0;
}

沒有留言:

張貼留言