#18733: 想請問一下這種寫法有什麼反例??


easylin0126@gmail.com (林榮翼)

學校 : 臺北市立成功高級中學
編號 : 89424
來源 : [140.114.207.162]
最後登入時間 :
2023-09-27 16:33:24
c517. 2. 南南見島 -- 2017高雄市資訊學科能力複賽 | From: [27.52.62.171] | 發表日期 : 2019-08-02 13:38

#include<stdio.h>
#include<stdlib.h>
#define min(a,b) (a>b?b:a)
int main(){
    long long x,y,w,s,e,n;
    scanf("%lld%lld%lld%lld%lld%lld",&x,&y,&w,&s,&e,&n);
    if(x<=w&&x>=e)
        printf("%lld\n",min(labs(y-n),labs(y-s)));
    else if(y<=n&&y>=s)
        printf("%lld\n",min(labs(x-w),labs(x-e)));
    else{
        long long dis=labs(x-w)+labs(y-s);
        long long dis2=labs(x-e)+labs(y-s);
        long long dis3=labs(x-w)+labs(y-n);
        long long dis4=labs(x-e)+labs(y-n);
        printf("%lld\n",min(dis4,min(dis3,min(dis,dis2))));
    }
}

如果 x 或 y 本身在範圍裡就可以取直線距離

如果 x 和 y 皆不在範圍裡,就取和四個頂點中距離最近的!

 
#18739: Re:想請問一下這種寫法有什麼反例??


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
c517. 2. 南南見島 -- 2017高雄市資訊學科能力複賽 | From: [49.158.83.43] | 發表日期 : 2019-08-02 18:25

 

w 、 s 是代表巢穴西南點的 x 、 y 座標, e 、 n 是東北的 x 、 y 座標。

而 x 座標的正向是從西指向東。既然如此,就沒有任何 x 座標的值可以同時滿足 x <= w 且 x >= e ,因為兩側保證毫無交集(巢穴面積不為 0 )。

應為 x >= w 且 x <= e。

 

以上。希望有幫助到您。

 
#18740: Re:想請問一下這種寫法有什麼反例??


easylin0126@gmail.com (林榮翼)

學校 : 臺北市立成功高級中學
編號 : 89424
來源 : [140.114.207.162]
最後登入時間 :
2023-09-27 16:33:24
c517. 2. 南南見島 -- 2017高雄市資訊學科能力複賽 | From: [27.52.62.171] | 發表日期 : 2019-08-02 20:17

 

w 、 s 是代表巢穴西南點的 x 、 y 座標, e 、 n 是東北的 x 、 y 座標。

而 x 座標的正向是從西指向東。既然如此,就沒有任何 x 座標的值可以同時滿足 x <= w 且 x >= e ,因為兩側保證毫無交集(巢穴面積不為 0 )。

應為 x >= w 且 x <= e。

 

以上。希望有幫助到您。

謝謝你!!!我一直在想是不是想法出問題,結果是判斷式不小心打錯><


 
ZeroJudge Forum