안경잡이개발자

728x90
반응형

문제 유형: 구현

문제 URL: https://codeforces.com/contest/1075/problem/A


  N x N의 체스 판이 있을 때 (1, 1)에 '화이트 킹'이 있고, (N, N)에 '블랙 킹'이 있습니다. 각 킹은 인접한 8가지 방향의 셀 중 한 곳으로 이동할 수 있습니다. 대각선도 포함해 이동할 수 있는 것입니다. 이 때 (X, Y)의 위치에 화이트 킹과 블랙 킹 중에서 누가 더 먼저 도착할 수 있는지를 구하면 되는 문제입니다. 다만 화이트 킹이 먼저 이동하며 시작과 동시에 킹의 위치와 (X, Y)가 동일하다면 그 즉시 종료됩니다.


  이 문제는 매우 간단한 문제입니다. (1, 1)에 화이트 킹이 있으며 (N, N)에 블랙 킹이 있으므로, 두 위치에서 (X, Y) 까지의 이동 횟수를 구하면 됩니다. 횟수를 구할 때는 각 킹들이 대각선 방향으로도 이동할 수 있다는 점에서 '가로 길이와 세로 길이 중에서 더 긴 것'을 구하면 됩니다.


  이동 횟수: 가로 길이와 세로 길이 중에서 더 긴 것


  결과적으로 이동 횟수를 비교하여 정답을 출력하면 됩니다.


※ 입출력 예시 ※


input
Copy
4
2 3
output
Copy
White
input
Copy
5
3 5
output
Copy
Black
input
Copy
2
2 2
output
Copy
Black


※ 정답 소스코드 ※

(컴파일 환경: GNU G++11 5.1.0)

#include <iostream>
#include <stdio.h>

using namespace std;

int main(void) {
	long long int n;
	cin >> n;
	long long int x, y;
	cin >> x >> y;
	long long int black = max(n - x, n - y);
	long long int white = max(x - 1, y - 1);
	if(black == 0) {
		cout << "Black";
	}
	else if(white == 0) {
		cout << "White";
	}
	else if(white <= black) {
		cout << "White";
	}
	else {
		cout << "Black";
	}
	return 0;
}


728x90
반응형