結果
| 問題 | No.2279 OR Insertion | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2023-04-29 11:56:58 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                TLE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 477 bytes | 
| コンパイル時間 | 197 ms | 
| コンパイル使用メモリ | 82,448 KB | 
| 実行使用メモリ | 271,456 KB | 
| 最終ジャッジ日時 | 2024-11-18 09:35:25 | 
| 合計ジャッジ時間 | 60,447 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 32 TLE * 16 | 
ソースコード
N = int(input())
S = input()
P = 998244353
ans = 0
for i in range(1,N + 1):
    dp = [0] * (N + 2)
    U = [0] * (N + 2)
    dp[0] = 1
    for j in range(N + 1):
        if j > 0:
            U [j] += U[j-1]
            dp[j] = U[j]
        if i + j <= N and S[-(i+j)] == "1":
            U[i + j] -= dp[j]
        if j < N + 1:
            U[j + 1] += dp[j]
        #print(dp[j])
    last = U[-1]
    ans += pow(2,i-1,P) * (pow(2,N -1,P) - last) % P
print(ans % P)
        
            
            
            
        