junyub2   2년 전

문제가 mCn을 구하는 문제인 것 같아서 나름 머리를 굴려서 코드를 만들어봤습니다.

예제도 당연히 잘 돌아갑니다. 근데 왜 틀린건지 반례를 못찾겠어요. 고수님들 알려주시면 감사하겠습니다.

import sys
t = int(sys.stdin.readline())
for i in range(t):
    n, m = map(int, sys.stdin.readline().split())
    dp = [0 for x in range(n+1)]
    if n != m:
        for i in range(n+1):
            if i == 0 :
                dp[i] = 0
            elif i == 1:
                dp[i] = m//i
            else:
                dp[i] = dp[i-1] * (m-i+1)//i
        ans = max(dp)
    else:
        ans = 1

    print(ans)

yanghj1490   2년 전

반례드립니다.

yanghj1490   2년 전

max(dp)말고 다른 값을 ans로 대입해야겠습니다.

junyub2   2년 전

감사합니다 다시 해보겠습니다

댓글을 작성하려면 로그인해야 합니다.