Submission #1263254

#TimeUsernameProblemLanguageResultExecution timeMemory
1263254DeltaStructLinear Garden (IOI08_linear_garden)C++17
65 / 100
98 ms131072 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...