結果
| 問題 | 
                            No.2188 整数列コイントスゲーム
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2023-01-13 22:52:56 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 159 ms / 2,000 ms | 
| コード長 | 1,027 bytes | 
| コンパイル時間 | 307 ms | 
| コンパイル使用メモリ | 82,292 KB | 
| 実行使用メモリ | 88,704 KB | 
| 最終ジャッジ日時 | 2024-12-24 18:52:01 | 
| 合計ジャッジ時間 | 7,903 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 47 | 
ソースコード
import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")
no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")
#######################################################################
fact = [1]
for i in range(15):
    fact.append((i+1)*fact[-1])
k = 17
b = [[0 for j in range(k)]for i in range(k+1)]
b[0][0] = 1
for i in range(k):
    for j in range(k):
        if j:
            b[i+1][j] += b[i][j-1]
        b[i+1][j] += b[i][j] * (-i)
n = ni()
m = ni()
if n == 0:
    if m == 0:
        print(1)
    else:
        print(0)
    exit()
if m > n:
    print(0)
    exit()
from fractions import Fraction
a = [Fraction(0)] * (n+1)
a[-1] = Fraction(1)
ans = []
for i in range(n, 0, -1):
    x = a[i] * fact[i]
    ans.append(a[i]*fact[i])
    for j in range(n+1):
        a[j] -= x * b[i][j] / fact[i]
    #print(a)
ans = [0] + ans[::-1]
print(int(ans[m]))