Submission #64035

#TimeUsernameProblemLanguageResultExecution timeMemory
64035evpipisLinear Garden (IOI08_linear_garden)C++11
100 / 100
150 ms41964 KiB
#include <bits/stdc++.h> using namespace std; const int len = 1e6+1; int n, m, dp[len][3][3]; char str[len]; int add(int a, int b){ return (a+b)%m; } int main(){ scanf("%d %d %s", &n, &m, &str); for (int a = 0; a < 3; a++) for (int b = 0; b < 3; b++) dp[n][a][b] = 1; for (int i = n-1; i >= 0; i--) for (int a = -2; a <= 0; a++) for (int b = 0; b <= 2; b++){ int ans = 0; if (a != -2) ans = add(ans, dp[i+1][a-1+2][max(b-1, 0)]); if (b != +2) ans = add(ans, dp[i+1][min(a+1, 0)+2][b+1]); dp[i][a+2][b] = ans; } int mn = 0, mx = 0, ans = 1; for (int i = 0; i < n; i++){ if (str[i] == 'P' && mn != -2) ans = add(ans, dp[i+1][mn-1+2][max(mx-1, 0)]); if (str[i] == 'L') mn = mn-1, mx = max(mx-1, 0); else mn = min(mn+1, 0), mx = mx+1; } printf("%d\n", ans); return 0; }

Compilation message (stderr)

linear_garden.cpp: In function 'int main()':
linear_garden.cpp:13:35: warning: format '%s' expects argument of type 'char*', but argument 4 has type 'char (*)[1000001]' [-Wformat=]
     scanf("%d %d %s", &n, &m, &str);
                               ~~~~^
linear_garden.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %s", &n, &m, &str);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#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...