結果
| 問題 | No.2926 Botaoshi | 
| コンテスト | |
| ユーザー |  電たくT | 
| 提出日時 | 2024-10-12 16:44:57 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 123 ms / 2,000 ms | 
| コード長 | 1,350 bytes | 
| コンパイル時間 | 179 ms | 
| コンパイル使用メモリ | 82,176 KB | 
| 実行使用メモリ | 111,592 KB | 
| 最終ジャッジ日時 | 2024-10-12 16:45:07 | 
| 合計ジャッジ時間 | 4,332 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 42 | 
ソースコード
N = int(input())
S = input()
dp = [[0,0,0] for _ in range(N)]
mod = 998244353
if S[0] == "L":
    dp[0][0] = 1
elif S[0] == "U":
    dp[0][1] = 1
elif S[0] == "R":
    dp[0][2] = 1
else:
    if len(S) == 1:
        dp[0][0] = 3
    else:
        if S[1] == "L":
            dp[0][0],dp[0][1] = 1,1
        else:
            dp[0] = [1,1,1]
for a in range(1,N-1):
    X = [0,0,0]
    P = dp[a-1]
    if S[a] == ".":
        if S[a+1] == "L":
            X[0] = P[0] + P[1]
            X[1] = P[0] + P[1] + P[2]
        else:
            X[0] = P[0] + P[1]
            X[1] = P[1] + P[2] + P[0]
            X[2] = P[1] + P[2] + P[0]
        for b in range(3):
            X[b] %= mod
    elif S[a] == "L":
        X[0] = P[1] + P[0]
        X[0] %= mod
    elif S[a] == "U":
        X[1] = P[1] + P[2] + P[0]
        X[1] %= mod 
    elif S[a] == "R":
        if S[a+1] == "L":
            pass
        else:
            X[2] = P[1] + P[2] + P[0]
            X[2] %= mod
    dp[a] = X
if len(S) >= 2:
    X = [0,0,0]
    P = dp[N-2]
    if S[N-1] == ".":
        X[0] = P[1] + P[0]
        X[1] = P[1] + P[2] + P[0]
        X[2] = P[1] + P[2] + P[0]
    elif S[N-1] == "L":
        X[0] = P[1] + P[0]
    else:
        X[1] = P[1] + P[2] + P[0]
    for b in range(3):
        X[b] %= mod
    dp[N-1] = X
print(sum(dp[N-1])%mod)
    
        
            
            
            
        