提出 #17506106


ソースコード 拡げる

Copy
S=str(input())
 
dp = [[0]*(len(S)) for _ in range(len(S))]
 
for w in range(2,len(S)+1):
    for i in range(len(S)):
        j=w+i
        if j>=len(S):
            continue
        if S[i:j+1]=="iwi":
            dp[i][j]=1
            continue
        if (w+1)%3==0 and S[i]=="i" and S[j]=="i":
            for k in range(i+1,j):
                    if S[k]=="w":
                        dp[i][j]=max(dp[i][j],dp[i][k-1]+dp[k+1][j]+1)
                        
            for mid in range(i+1,j):
                dp[i][j]=max(dp[i][j],dp[i][mid]+dp[mid+1][j])
        else:
            dp[i][j]=dp[i][j-1]
                
    
print(dp[0][-1])

提出情報

提出日時
問題 I - イウィ
ユーザ Matsuda123
言語 Python (3.8.2)
得点 0
コード長 670 Byte
結果 WA
実行時間 535 ms
メモリ 9532 KB

ジャッジ結果

セット名 All
得点 / 配点 0 / 5
結果
AC × 2
WA × 5
セット名 テストケース
All 00, 01, 02, 03, 04, 90, 91
ケース名 結果 実行時間 メモリ
00 WA 299 ms 9400 KB
01 WA 129 ms 9416 KB
02 WA 535 ms 9396 KB
03 WA 519 ms 9532 KB
04 WA 344 ms 9220 KB
90 AC 25 ms 8864 KB
91 AC 20 ms 9028 KB