#2495: 還是錯 好奇怪


zzxzxzzxz (硬漢)

學校 : 國立臺灣大學
編號 : 8212
來源 : [140.112.250.211]
最後登入時間 :
2014-08-11 20:48:40
d170. 飛蛾撲火(一) -- me | From: [140.112.242.135] | 發表日期 : 2009-10-16 01:54

因為之前一直RE   試了其他方法

這個我覺得如果有錯也該是本來該被燒到而沒被燒到

但是卻是在不該被燒到的情況下被燒到了

-------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int gcd(int a, int b)  //求最大公因數

{
    if(a%b==0)return b;
    return gcd(b, a%b);
}

int main()
{
        int n;
        scanf("%d",&n);
        int i,j,g, dx,dy;
        int x1[20],y1[20],x2[20],y2[20],x3[20],y3[20];
        for(i=0;i<n;i++)
            scanf("%d%d%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i],&x3[i],&y3[i]);

        for(i=0;i<n;i++)

        {
            dx=x2[i]-x1[i]; //方向向量
            dy=y2[i]-y1[i];

            if(dx!=0 && dy!=0)
            {
                g=gcd(dx,dy);
                dx=dx/g;    //互質方向向量
                dy=dy/g;
            }

            else  //有等於零的情形

            {
                if(dx==0)dy=dy/abs(dy);
                else dx=dx/abs(dx);
            }

            for(j=1;j<=100;j++)
            {
                x1[i]+=dx;y1[i]+=dy;    //移動
                if(x1[i]==x3[i] && y1[i]==y3[i])
                    {printf("該死的東西!竟敢想讓我死!\n");break;}

                if(x1[i]==x2[i] && y1[i]==y2[i])
                    {printf("父親大人!母親大人!我快到了!\n");break;}
            }
        }
        return 0;
}
-----------------------------------------------------------------------------完

到底是怎麼回事

 
ZeroJudge Forum