Submission #1263256

#TimeUsernameProblemLanguageResultExecution timeMemory
1263256DeltaStructLinear Garden (IOI08_linear_garden)C++17
100 / 100
585 ms2304 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; cin >> n >> m; string s; cin >> s; vector dp(3,vector(3,vector(5,vector<int>(2)))),res = dp; ++res[0][0][2][1] %= m; for (int i(0);i < n;++i){ dp = res; for (int a(0);a < 3;++a) for (int b(0);b < 3;++b) for (int c(0);c < 5;++c) res[a][b][c][0] = res[a][b][c][1] = 0; 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) (res[max(a,c-1)][b][c+1][d&&s[i]=='L'] += dp[a][b][c][d]) %= m; if ((!d||s[i]=='P')&&c-1>=0) (res[a][max(b,3-c)][c-1][d&&s[i]=='P'] += dp[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){ res[a][b][c][0] = res[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 += res[a][b][c][0]+res[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...