結果

問題 No.2204 Palindrome Splitting (No Rearrangement ver.)
ユーザー nikoro_is_wolfnikoro_is_wolf
提出日時 2023-02-03 23:19:29
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 650 bytes
コンパイル時間 167 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 194,688 KB
最終ジャッジ日時 2024-07-02 21:25:12
合計ジャッジ時間 3,871 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 39 ms
57,216 KB
testcase_01 WA -
testcase_02 AC 40 ms
52,864 KB
testcase_03 TLE -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
testcase_21 -- -
testcase_22 -- -
testcase_23 -- -
testcase_24 -- -
testcase_25 -- -
testcase_26 -- -
testcase_27 -- -
testcase_28 -- -
testcase_29 -- -
testcase_30 -- -
testcase_31 -- -
testcase_32 -- -
testcase_33 -- -
testcase_34 -- -
testcase_35 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

S=input()
ok=[[False for _ in range(len(S))] for _ in range(len(S))]
for i in range(len(S)):
    for j in range(i,len(S)):
        Len=(j-i+1)//2
        s=S[i:j+1]
        if S[i:j+1]==s[::-1]:
            ok[i][j]=True

def okey(mid):
    dp=[False for _ in range(len(S)+1)]
    dp[len(S)]=True
    for i in range(len(S)):
        if dp[i-1]:
            for d in range(mid-1,len(S)-i):
                if ok[i][i+d]:
                    dp[i+d]=True
    if dp[len(S)-1]:
        return True
    return False

left,right=1,len(S)
while right-left>1:
    mid=(left+right)//2
    if okey(mid):
        left=mid
    else:
        right=mid
print(left)
0