#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m; cin >> n >> m; string s; cin >> s;
vector dp(n+1,vector(3,vector(3,vector(5,vector<int>(2)))));
++dp[0][0][0][2][1] %= m;
for (int i(0);i < n;++i){
for (int a(0);a < 3;++a) for (int b(0);b < 3;++b) for (int c(0);c < 5;++c) for (int d(0);d < 2;++d){
if (c+1<5) (dp[i+1][max(a,c-1)][b][c+1][d&&s[i]=='L'] += dp[i][a][b][c][d]) %= m;
if ((!d||s[i]=='P')&&c-1>=0) (dp[i+1][a][max(b,3-c)][c-1][d&&s[i]=='P'] += dp[i][a][b][c][d]) %= m;
}
for (int a(0);a < 3;++a) for (int b(0);b < 3;++b) if (a+b>=3) for (int c(0);c < 5;++c){
dp[i+1][a][b][c][0] = dp[i+1][a][b][c][1] = 0;
}
}
int r = 0;
for (int a(0);a < 3;++a) for (int b(0);b < 3;++b) for (int c(0);c < 5;++c) r += dp[n][a][b][c][0]+dp[n][a][b][c][1];
cout << r%m << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |