結果
問題 |
No.122 傾向と対策:門松列(その3)
|
ユーザー |
![]() |
提出日時 | 2025-07-03 01:55:43 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 732 ms / 5,000 ms |
コード長 | 1,097 bytes |
コンパイル時間 | 407 ms |
コンパイル使用メモリ | 82,276 KB |
実行使用メモリ | 260,108 KB |
最終ジャッジ日時 | 2025-07-03 01:55:51 |
合計ジャッジ時間 | 7,687 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 8 |
ソースコード
import sys input = sys.stdin.readline mod=10**9+7 from itertools import permutations M=[list(map(int,input().split())) for i in range(7)] L1=list(permutations([0,2,4,6])) L2=list(permutations([1,3,5])) ANS=0 for X in L1: for Y in L2: U=X+Y DP=[0]*20002 DP[0]=1 for i in range(7): k=U[i] MIN,MAX=M[k] NDP=[0]*20002 SUM=0 for j in range(20002): SUM=(SUM+DP[j])%mod if MIN<=j<=MAX: if i==6: ANS+=SUM else: NDP[j+1]=SUM DP=NDP U=Y+X DP=[0]*20002 DP[0]=1 for i in range(7): k=U[i] MIN,MAX=M[k] NDP=[0]*20002 SUM=0 for j in range(20002): SUM=(SUM+DP[j])%mod if MIN<=j<=MAX: if i==6: ANS+=SUM else: NDP[j+1]=SUM DP=NDP print(ANS%mod)