Submission #1105497

#TimeUsernameProblemLanguageResultExecution timeMemory
1105497NekoNPCLinear Garden (IOI08_linear_garden)C++17
0 / 100
63 ms65536 KiB
#include <bits/stdc++.h> using namespace std; typedef long long lli; const int maxN = 1e6 + 12; int n; string s; lli mod, __f[maxN][2][2][3]; lli f(int i, bool flag, int d, int cnt) { if (cnt == 3) { return 0; } if (i == n) { return 1; } lli& dp = __f[i][flag][d][cnt]; if (dp != -1) { return dp; } dp = 0; for (int k = 0; k <= (flag ? 1 : s[i] - '0'); ++k) { dp += f(i + 1, flag | (k < s[i] - '0'), d, d == k ? cnt + 1 : 1); dp %= mod; } return dp; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> mod >> s; memset(__f, -1, sizeof(__f)); for (int i = 0; i < (int) s.length(); ++i) { if (s[i] == 'L') { s[i] = '0'; } else { s[i] = '1'; } } reverse(s.begin(), s.end()); cout << (f(0, 0, 0, 0) + mod - 1) % mod << "\n"; }
#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...