結果

問題 No.1694 ZerOne
ユーザー raven7959raven7959
提出日時 2021-10-07 07:40:41
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 169 ms / 2,000 ms
コード長 446 bytes
コンパイル時間 160 ms
コンパイル使用メモリ 82,396 KB
実行使用メモリ 114,944 KB
最終ジャッジ日時 2024-07-23 03:04:11
合計ジャッジ時間 3,643 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

from itertools import combinations

S=input()
popcount=0
digitsum=0
for i in range(len(S)):
  if S[i]=="1":
    popcount+=1
    digitsum+=i+1
DP=[[[0]*(digitsum+1) for _ in range(len(S)+1)] for _ in range(len(S)+1)]
DP[0][0][0]=1
for i in range(len(S)):
  for j in range(i+1):
    for k in range(digitsum+1):
      DP[i+1][j][k]+=DP[i][j][k]
      if k+i+1<=digitsum:
        DP[i+1][j+1][k+i+1]+=DP[i][j][k]
print(DP[len(S)][popcount][digitsum])
0