結果

問題 No.2926 Botaoshi
コンテスト
ユーザー Polaris2124
提出日時 2024-10-12 16:57:03
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 125 ms / 2,000 ms
コード長 1,091 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 409 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 97,408 KB
最終ジャッジ日時 2024-10-12 16:57:47
合計ジャッジ時間 5,267 ms
ジャッジサーバーID
(参考情報)
judge4 / judge
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 42
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
import math
from itertools import product, permutations, combinations, accumulate
from heapq import heapify, heappush, heappop
from collections import deque, defaultdict, Counter
from bisect import bisect, bisect_left, bisect_right
from copy import copy, deepcopy
#from sortedcontainers import SortedSet, SortedList, SortedDict

sys.setrecursionlimit(10**7)
INF = float('inf')
LINF = 1 << 60
MOD = 998244353

def mii():
    return map(int, sys.stdin.readline().split())

N = int(input())
S = input()

# L, R, U
dp = [[0]*3 for _ in range(N)]
if S[0] == "L":
    dp[0][0] = 1
elif S[0] == "R":
    dp[0][1] = 1
elif S[0] == "U":
    dp[0][2] = 1
else:
    dp[0][0] = 1
    dp[0][1] = 1
    dp[0][2] = 1

for i in range(N-1):
    if S[i+1] == "L":
        dp[i+1][0] = (dp[i][0] + dp[i][2]) % MOD
    elif S[i+1] == "R":
        dp[i+1][1] = sum(dp[i]) % MOD
    elif S[i+1] == "U":
        dp[i+1][2] = sum(dp[i]) % MOD
    else:
        dp[i+1][0] = (dp[i][0] + dp[i][2]) % MOD
        dp[i+1][1] = sum(dp[i]) % MOD
        dp[i+1][2] = sum(dp[i]) % MOD

print(sum(dp[N-1]) % MOD)
0