結果
問題 |
No.1542 ぽんぽんぽん ぽんぽんぽんぽん ぽんぽんぽん
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:23:10 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,270 bytes |
コンパイル時間 | 188 ms |
コンパイル使用メモリ | 82,880 KB |
実行使用メモリ | 66,512 KB |
最終ジャッジ日時 | 2025-06-12 19:23:17 |
合計ジャッジ時間 | 2,809 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 2 WA * 28 |
ソースコード
def main(): import sys N = int(sys.stdin.readline()) S = sys.stdin.readline().strip() initial = "ponpon" if N < 6: print(-1) return max_k = (N - 6) // 3 dp = [[-1 for _ in range(N+1)] for __ in range(7)] dp[0][0] = 0 for i in range(7): for j in range(N+1): if dp[i][j] == -1: continue current_k = dp[i][j] if i < 6 and j < N: if S[j] == initial[i]: if dp[i+1][j+1] < current_k: dp[i+1][j+1] = current_k if j < N: if dp[i][j+1] < current_k: dp[i][j+1] = current_k if j + 3 <= N: substr = S[j:j+3] if substr == 'pon': if dp[i][j+3] < current_k + 1: dp[i][j+3] = current_k + 1 max_possible = -1 for j in range(N+1): if dp[6][j] != -1: remaining = N - j possible_k = dp[6][j] max_possible = max(max_possible, possible_k) if max_possible == -1: print(-1) else: print(max_possible) if __name__ == "__main__": main()