Problem link
https://atcoder.jp/contests/abc178/tasks/abc178_e
Problem Summary
x, y ์ขํ๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ์ฅ ๋จผ ๋งจํดํผ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .
Solution
์ผ๋จ ์ ๋ช
ํ ๋ฌธ์ ๋ผ๊ณ ํ๋๋ฐ... ์ฒ์ ๋ํ์์๋ ํ์ง ๋ชปํ๋ค...
๋ค์ ์ฒ์ฒํ ํด๋ณด๋ฉด ์ด๋ ต์ง ์์ ๋ฌธ์ ์ด๊ธด ํ๋ค
๋จผ์ ์กฐ๊ฑด์ ์ ์จ๋ณด๋ฉด,| xi - xj | + | yi - yj |
์ ์ต๋๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์ธ๋ฐ ์ ๋๊ฐ์ ๋ฒ๊ฒจ์ค ํ ์ ๋ฆฌํด์ค ์ ์๋ค.
- xi > xj, yi > yj
(xi - xj) + (yi - yj)
(xi + yi) - (xj + yj)
- xi < xj, yi > yj
-(xi - xj) + (yi - yj)
-(xi - yi) + (xj - yj)
- xi > xj, yi < yj
(xi - xj) - (yi - yj)
(xi - yi) - (xj - yj)
- xi < xj, yi < yj
-(xi - xj) - (yi - yj)
-(xi + yi) + (xj + yj)
์ ๋ณด๋ฉด ์์ชฝ์ด (xj + yj) ๋๋ (xj - yj) ํ์์ผ๋ก ์ ๋ฆฌ๊ฐ ๋๋๋ฐ x, y๊ฐ์ ํฉ ๋๋ x, y์ ๊ฐ์ ์ฐจ๋ฅผ ์ ๋ถ ๊ตฌํ๊ณ ๊ทธ์ค์ ์ต๋๊ฐ ๋๋๋ก ํด์ฃผ๋ฉด ๋๋ค.
๋ฐ๋ผ์ ์ ๋ต์ max( max(xi + yi) - min(xi + yi), max(xi - yi) - min(xi - yi) )
Source Code
#include <iostream>
#include <climits>
using namespace std;
int main() {
int n;
cin >> n;
int maxPlus = -INT_MAX;
int minPlus = INT_MAX;
int maxMinus = -INT_MAX;
int minMinus = INT_MAX;
for (int i = 0; i < n; i++)
{
int x, y;
cin >> x >> y;
int plus = x + y;
int minus = x - y;
maxPlus = max(maxPlus, plus);
minPlus = min(minPlus, plus);
maxMinus = max(maxMinus, minus);
minMinus = min(minMinus, minus);
}
cout << max(maxPlus - minPlus, maxMinus - minMinus) << endl;
}