Submission #1105495

#TimeUsernameProblemLanguageResultExecution timeMemory
1105495NekoNPCLinear Garden (IOI08_linear_garden)C++17
0 / 100
31 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 < 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"; }

Compilation message (stderr)

linear_garden.cpp: In function 'int main()':
linear_garden.cpp:32:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for (int i = 0; i < s.length(); ++i) {
      |                     ~~^~~~~~~~~~~~
#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...