Submission #1152157

#TimeUsernameProblemLanguageResultExecution timeMemory
1152157knhatdevLinear Garden (IOI08_linear_garden)C++20
90 / 100
82 ms126880 KiB
#include <bits/stdc++.h> #define int long long #define ii pair<int,int> #define fi first #define se second using namespace std; const int N = 1e6 + 5; int n, m, dp[N][4][4], ans = 1; string s; main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> s; s = ' ' + s; for(int i = n; i >= 0; i--){ for(int j = 2; j >= 0; j--){ for(int k = 2; k >= 0; k--){ if(i == n){ dp[i][j][k] = 1; continue; } dp[i][j][k] = (dp[i + 1][max(j - 1, 0ll)][k + 1] + dp[i + 1][j + 1][max(k - 1, 0ll)]) % m; } } } int x = 0, y = 0; for(int i = 1; i <= n; i++){ if(s[i] == 'L'){ x++; y--; if(y < 0) y = 0; } else { ans = (ans + dp[i][x + 1][max(0ll, y - 1)]) % m; y++; x--; if(x < 0) x = 0; } } cout << ans; }

Compilation message (stderr)

linear_garden.cpp:11:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   11 | main() {
      | ^~~~
#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...