#include <bits/stdc++.h>
using namespace std;
int n, mod;
char str[1000005];
int dp[2][5][5];
vector<pair<int,int> > vec;
void get_ans(int idx, int mins, int maxs) {
while (idx < n) {
if (str[idx] == 'L') {
mins = min(-1, mins - 1);
maxs = max(-1, maxs - 1);
vec.emplace_back(1, 0);
}
else {
vec.emplace_back(min(-1, mins - 1) + 2, max(-1, maxs - 1) + 2);
mins = (min(1, mins + 1));
maxs = (max(1, maxs + 1));
}
idx++;
}
}
int main() {
scanf("%d%d%s", &n, &mod, str);
for (int i = -2; i <= 2; i++)
for (int j = i; j <= 2; j++)
dp[n&1][i+2][j+2] = 1;
int ans = 1;
if (str[0] == 'L') {
vec.emplace_back(1, 0);
get_ans(1, -1, -1);
}
else {
vec.emplace_back(1, 1);
get_ans(1, 1, 1);
}
for (int i = n - 1; i >= 0; i--) {
int next = (i + 1) & 1;
int now = i & 1;
for (int j = -2; j <= 2; j++)
for (int k = j; k <= 2; k++) {
dp[now][j+2][k+2] = 0;
if (j - 1 >= -2)dp[now][j+2][k+2] += dp[next][min(-1, j - 1) + 2][max(-1, k - 1) + 2];
if (k + 1 <= 2)dp[now][j+2][k+2] += dp[next][min(1, j + 1) + 2][max(1, k + 1) + 2];
dp[now][j+2][k+2] %= mod;
}
int a, b;
tie(a, b) = vec[i];
ans = (ans + dp[next][a][b]) % mod;
}
printf("%d\n", ans);
return 0;
}
Compilation message
linear_garden.cpp: In function 'int main()':
linear_garden.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%s", &n, &mod, str);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
248 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
484 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
564 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
564 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
564 KB |
Output is correct |
2 |
Correct |
2 ms |
564 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
592 KB |
Output is correct |
2 |
Correct |
3 ms |
620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
620 KB |
Output is correct |
2 |
Correct |
3 ms |
620 KB |
Output is correct |
3 |
Correct |
3 ms |
636 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
1020 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
1020 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
10 ms |
1272 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
13 ms |
1768 KB |
Output isn't correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
45 ms |
5096 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
59 ms |
5228 KB |
Output isn't correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
78 ms |
5268 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
92 ms |
9568 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
140 ms |
9952 KB |
Output is correct |
2 |
Correct |
143 ms |
9956 KB |
Output is correct |
3 |
Correct |
160 ms |
9956 KB |
Output is correct |