d575 - 末日審判
題目描述
題目描述了一個末日審判的場景,審判範圍是十字型的。給定審判中心座標、首都座標和審判範圍,判斷首都是否在審判範圍內,如果在則輸出 "die",否則輸出 "alive"。
解題思路
題目要求判斷首都座標是否在以審判中心座標為中心,審判範圍為半徑的十字型範圍內。由於十字型範圍可以拆解為兩個曼哈頓距離小於等於範圍的矩形,因此只需要計算首都座標到審判中心座標的曼哈頓距離,如果曼哈頓距離小於等於審判範圍,則首都位於審判範圍內,輸出 "die",否則輸出 "alive"。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <stdio.h>
#include <math.h>
int main(){
long long int a,b,c,d,e;
while(scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e)>0){
(labs(a-c)+labs(b-d)<=e)?printf("die\n"):printf("alive\n");
}
}