728x90
반응형
완전 수학 문제이다.
R은 외각에 있는 타일의 개수이고 B는 외각을 제외한 타일의 개수인데
외각에 있는 타일의 개수는 2(L+W) - 4, 외각을 제외한 타일의 개수는 (L-2)*(W-2)로 표현할 수 있다.
위의 식들을 정리하면 2(L+W) - 4 = R -> L+W = (R+4)//2,
(L-2)*(W-2) = L*W - 2*(L+W) + 4 = L*W - 2*((R+4)//2) + 4 = L*W - (R+4) + 4 = L*W - R = B -> L*W = R + B
즉 L+W = (R+4)//2, L*W = R + B이다.
위의 식들을 통해 R, B가 주어졌을 때 우리가 찾아야 되는 L, W과 관련된 값(L+W, L*W)를 얻을 수 있다.
위 두 값만 알면 L, W는 쉽게 구할 수 있다.
EX) R = 10, B = 2
L + W = (10+4)/2 = 7, L*W = 10 + 2 = 12
L+W = 7, L*W = 12를 만족하는 L, W는 4, 3이다.
R, B = map(int, input().split())
LpW = (R + 4) // 2
LW = R + B
for i in range(1, LpW):
if (LpW - i) * i == LW:
print(max(i, LpW-i), min(i, LpW-i))
break
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2864번 5와 6의 차이(python) (0) | 2020.02.10 |
---|---|
백준 알고리즘 2863번 이게 분수?(python) (0) | 2020.02.10 |
백준 알고리즘 2857번 FBI(python) (0) | 2020.02.10 |
백준 알고리즘 2839번 설탕 배달(python) (0) | 2020.02.10 |
백준 알고리즘 2798번 블랙잭(python) (0) | 2020.02.10 |