結果
問題 |
No.1106 🦉 何事もバランスが大事
|
ユーザー |
![]() |
提出日時 | 2020-07-10 11:31:01 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,466 bytes |
コンパイル時間 | 287 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,136 KB |
最終ジャッジ日時 | 2024-10-10 03:58:46 |
合計ジャッジ時間 | 5,020 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 75 RE * 2 |
ソースコード
import sys sys.setrecursionlimit(10 ** 6) def II(): return int(sys.stdin.readline()) def MI(): return map(int, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def SI(): return sys.stdin.readline()[:-1] def LLI(rows_number): return [LI() for _ in range(rows_number)] def LLI1(rows_number): return [LI1() for _ in range(rows_number)] int1 = lambda x: int(x) - 1 def MI1(): return map(int1, sys.stdin.readline().split()) def LI1(): return list(map(int1, sys.stdin.readline().split())) p2D = lambda x: print(*x, sep="\n") dij = [(1, 0), (0, 1), (-1, 0), (0, -1)] def topen(a): a+=3725290298461914062 res=[] while a: a,r=divmod(a,5) res.append(r) return res[::-1] res=topen(II()) dp=[[[0]*2 for _ in range(55)] for _ in range(28)] first=True for i,d in enumerate(res): if first: if d > 2: dp[i+1][d+i*2][0]=1 if d == 4: dp[i + 1][3 + i * 2][1] = 1 first=False continue for a in range(3,5): if i*2+a>54:break dp[i+1][i*2+a][1]+=1 for j in range(55): pre=dp[i][j][0] if pre: if j+d<55:dp[i+1][j+d][0]+=pre for a in range(d): if j+a>54:break dp[i+1][j+a][1]+=pre pre=dp[i][j][1] if pre: for a in range(5): if j+a>54:break dp[i+1][j+a][1]+=pre #p2D(dp) print(sum(dp[27][54]))