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
반응형

+ Recent posts