代碼正確運行,它執行它應該做的事情,但我被告知我可以通過使用布爾表達式來使其更快,但不知道在哪裏插入它們。問題是:有人能告訴我任何不同的方法來使此代碼更快?
給定一系列n個點與它們的座標,編寫一個遠程程序,它計算一個點在矩形之外的最小遠程值。如果一個點不在廣場內部,也不屬於方形輪廓。如果在方格外沒有點,則程序必須輸出0.
限制條件:
1≤n≤10000且1≤a≤1000;
實施例:輸入: -3 2
-2 2
4 -1
輸出:5
可能有人建議我有什麼技術可以使代碼更有效率?
int remote(int x, int y) {
int z = abs(x) + abs(y);
return z;
}
int main() {
int n, a;
int x;
int y;
cin >> n >> a;
int z=20001;
for (int i = 1; i <= n; i++) {
cin >> x >> y;
if (x > a/2 || y > a/2) {
if (z > remote(x, y)) {
z = remote(x, y);
}
}
}
cout << z <<endl;
return 0;
}
附加信息:在平面中,給出了一個邊長爲a,座標系原點處爲中心的正方形。邊與座標軸平行。我們稱給定點的「偏遠」,即點座標絕對值之和。例如,座標爲(2,-3)的點的遙遠距離爲5. – 23ElCaliente
您的代碼看起來像是試圖找到您的要求所說的最大距離,以找到最小的距離。 – NathanOliver
爲了改進**工作代碼**請在[SE代碼審查](http://codereview.stackexchange.com/)詢問。 –