a, b = map(int, input().split())
k, x = map(int, input().split())
min = k - x
max = k + x
if max < a:
print('IMPOSSIBLE')
elif max >= b and a <= min:
print(b - min + 1)
elif min <= a and max <= b:
print(max - a + 1)
elif min <= a and max >= b:
print(b - a + 1)
else: #a, b 범위 내의 수
print(max - min + 1)
나는 경우의 수를 하나씩 계산했지만, 더 효율적인 풀이가 있을 것이라 생각했고 역시 더 좋은 풀이가 있는 것 같다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
백준 > 27294 몇개고? (0) | 2024.02.11 |
---|---|
백준 > 1712 손익분기점 (0) | 2024.02.10 |
백준 > 2480 주사위 세개 (1) | 2023.12.08 |
파이썬의 다양한 입력 (0) | 2021.12.31 |
백준 > 11651 좌표 정렬하기 2 (0) | 2021.12.31 |