結果
問題 |
No.2926 Botaoshi
|
ユーザー |
|
提出日時 | 2024-10-15 22:21:24 |
言語 | Java (openjdk 23) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,158 bytes |
コンパイル時間 | 3,419 ms |
コンパイル使用メモリ | 77,748 KB |
実行使用メモリ | 48,120 KB |
最終ジャッジ日時 | 2024-10-15 22:22:24 |
合計ジャッジ時間 | 13,362 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 34 RE * 8 |
ソースコード
import java.util.Scanner; class Main{ private static final int MOD = 998244353; public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] dp = new int[N]; dp[2] = 1; String S = sc.next(); for(char c:S.toCharArray()){ if(c=='L'){ dp[0] += dp[2]; if(dp[0]>=MOD) dp[0] -= MOD; dp[1] = dp[2] = 0; } if(c=='R'){ dp[1] += dp[0]; if(dp[1]>=MOD) dp[1] -= MOD; dp[1] += dp[2]; if(dp[1]>=MOD) dp[1] -= MOD; dp[0] = dp[2] = 0; } if(c=='U'){ dp[2] += dp[0]; if(dp[2]>=MOD) dp[2] -= MOD; dp[2] += dp[1]; if(dp[2]>=MOD) dp[2] -= MOD; dp[0] = dp[1] = 0; } if(c=='.'){ int[] next = new int[3]; next[0] = dp[0]+dp[2]; if(next[0]>=MOD) next[0] -= MOD; next[1] = dp[0]+dp[1]; if(next[1]>=MOD) next[1] -= MOD; next[1] += dp[2]; if(next[1]>=MOD) next[1] -= MOD; next[2] = dp[0]+dp[1]; if(next[2]>=MOD) next[2] -= MOD; next[2] += dp[2]; if(next[2]>=MOD) next[2] -= MOD; dp = next; } } System.out.println(((dp[0]+dp[1])%MOD+dp[2])%MOD); } }