結果
問題 | No.2926 Botaoshi |
ユーザー |
![]() |
提出日時 | 2024-10-12 15:45:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 84 ms / 2,000 ms |
コード長 | 1,263 bytes |
コンパイル時間 | 200 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 77,312 KB |
最終ジャッジ日時 | 2024-10-12 15:45:14 |
合計ジャッジ時間 | 4,711 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 42 |
ソースコード
from collections import defaultdict, deque, Counter # from functools import cache # import copy from itertools import combinations, permutations, product, accumulate, groupby, chain # from more_itertools import distinct_permutations from heapq import heapify, heappop, heappush import math import bisect # from pprint import pprint from random import randint, shuffle, randrange # from sortedcontainers import SortedSet, SortedList, SortedDict import sys # sys.setrecursionlimit(2000000) input = lambda: sys.stdin.readline().rstrip('\n') inf = float('inf') mod1 = 10**9+7 mod2 = 998244353 def ceil_div(x, y): return -(-x//y) ################################################# N = int(input()) S = input() dp = [0]*3 if S[0] == "L": dp[0] = 1 elif S[0] == "R": dp[1] = 1 elif S[0] == "U": dp[2] = 1 else: dp[0] = 1 dp[1] = 1 dp[2] = 1 for i in range(1, N): s = S[i] ndp = [0]*3 if s == "L": ndp[0] = dp[0]+dp[2] elif s == "R": ndp[1] = dp[0]+dp[1]+dp[2] elif s == "U": ndp[2] = dp[0]+dp[1]+dp[2] else: ndp[0] = dp[0]+dp[2] ndp[1] = dp[0]+dp[1]+dp[2] ndp[2] = dp[0]+dp[1]+dp[2] dp = ndp dp[0] %= mod2 dp[1] %= mod2 dp[2] %= mod2 print(sum(dp)%mod2)