2011年6月21日 星期二

d170: 飛蛾撲火(一)

內容 :
    話說,很久很久很久很久很久很久很久很久很久很久很久很久......以前,有個奇幻美妙的地方--幻之地,在那住著一隻,名叫楓火的蛾,不妙的是,某年發生了一場天災,使的她與她的父母分散,雖然已經在幻之地找了好一段時間,但他也沒因為這樣而放棄尋找父母的下落,因為她已不在面對失敗及挫折的陰影了,反而轉個身面對燦爛美好的未來,也因此他決定要離開幻之地,尋找雙親的下落。但未來也不知有多少她得面對的困難。
她在離開之前已經打聽了N個父母的下落了,但在這個亂世裡總會有壞人的存在,想騙楓火被火燙到,現在就請你幫忙判別一下了.....

輸入說明 :
    第一行有一個數N,1<=N<=20,表示接下來有N組測資。
    每筆測資有六個正整數,皆小於一百,X1,Y1,X2,Y2,X3,Y3,分別表示起點(X1,Y1),目的地(X2,Y2),有火的樹(X3,Y3)。

輸出說明 :
    如果,會被火燙到(碰到),輸出"該死的東西!竟敢想讓我死!"
    反之,輸出"父親大人!母親大人!我快到了!"

範例輸入 :
2
1 1 3 2 2 80
1 1 3 3 2 2

範例輸出 :
    父親大人!母親大人!我快到了!
    該死的東西!竟敢想讓我死!

提示 :
    三點皆不在同一位子!直線運動。
    有問題的話,儘管發問,不才的我會解除您的困擾。

程式碼 :
#include <stdio.h>

int main() 
{
    int i,n,x1,x2,x3,y1,y2,y3;
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
        
        if(((x1-x2)*(y1-y3))==((y1-y2)*(x1-x3)) &&
           ((x1<=x3 && x3<=x2 && y1<=y3 && y3<=y2) ||
            (x1>=x3 && x3>=x2 && y1>=y3 && y3>=y2) ||
            (x1<=x3 && x3<=x2 && y1>=y3 && y3>=y2) ||
            (x1>=x3 && x3>=x2 && y1<=y3 && y3<=y2) ))
            printf("該死的東西!竟敢想讓我死!\n");
        else
            printf("父親大人!母親大人!我快到了!\n");
    }
    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=d170

沒有留言:

張貼留言