結果
問題 | No.2484 Add to Variables |
ユーザー |
![]() |
提出日時 | 2023-09-23 12:30:17 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 102 ms / 2,000 ms |
コード長 | 1,293 bytes |
コンパイル時間 | 448 ms |
コンパイル使用メモリ | 82,348 KB |
実行使用メモリ | 84,608 KB |
最終ジャッジ日時 | 2024-07-16 12:07:20 |
合計ジャッジ時間 | 4,933 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 39 |
ソースコード
#############################################################import syssys.setrecursionlimit(10**7)from heapq import heappop,heappushfrom collections import deque,defaultdict,Counterfrom bisect import bisect_left, bisect_rightfrom itertools import product,combinations,permutationsipt = sys.stdin.readlinedef iin():return int(ipt())def lmin():return list(map(int,ipt().split()))MOD = 998244353U=5*10**5fact=[1]*(U+1)invfact=[1]*(U+1)for i in range(1,U+1):fact[i]=fact[i-1]*i%MODinvfact[U]=pow(fact[U],MOD-2,MOD)for i in range(U-1,-1,-1):invfact[i]=invfact[i+1]*(i+1)%MODdef nCr(n,r):if n<0 or r<0 or n-r<0:return 0return fact[n]*invfact[r]%MOD*invfact[n-r]%MODdef nPr(n,r):if n<0 or r<0 or n-r<0:return 0return fact[n]*invfact[n-r]%MOD#############################################################N,M = lmin()B = lmin()"""for i in range(1,N-1):if B[i] > B[i-1] and B[i] > B[i+1]:print(0)exit()"""ans = 0for i in range(min(B[3]+1,B[1]+1)):tmp = 1tmp *= nCr(B[3],i)tmp %= MODtmp *= nCr(M-B[3],B[1]-i)tmp %= MODtmp *= nCr(M-B[3]+i-B[1]+i,B[0]-B[1]+i)tmp %= MODtmp *= nCr(M-i-(M-B[3]-(B[1]-i)),B[2]-i)tmp %= MODans += tmpans %= MODprint(ans*nCr(M,B[3])%MOD)