[01085] 직사각형에서 탈출

Byeongmin·2021년 6월 11일
0
post-thumbnail

[01085] 직사각형에서 탈출

문제

한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 x, y, w, h가 주어진다.

출력

첫째 줄에 문제의 정답을 출력한다.

제한

  • 1 ≤ w, h ≤ 1,000
  • 1 ≤ x ≤ w-1
  • 1 ≤ y ≤ h-1
  • x, y, w, h는 정수

코드

#include <iostream>

using namespace std;

int main() {
    int x, y, w, h;

    scanf("%d%d%d%d", &x, &y, &w, &h);

    printf("%d\n", (x < w - x)? \
                   (x < y)? \
                       (x < h - y)? \
                           x : h - y : \
                       (y < h - y)? \
                           y : h - y : \
                   (w - x < y)? \
                       (w - x < h - y)? \
                           w - x : h - y : \
                       (y < h - y)? \
                           y : h - y);
}

부가 설명

4개의 숫자 (x, y, w-x, h-y)를 비교하면 되는 문제였다.
if, else문을 쓰기 귀찮아서 삼항 연산자로 만들어 출력했다.
하다보니 더 귀찮았다

출처 : https://www.acmicpc.net/problem/1085

profile
Handong Global Univ.

0개의 댓글