# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
53959 | 2018-07-02T05:22:24 Z | 강태규(#1453) | Linear Garden (IOI08_linear_garden) | C++11 | 169 ms | 9428 KB |
#include <iostream> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <set> #include <map> #include <unordered_map> #include <functional> #include <cstring> #include <cmath> #include <ctime> #include <cstdlib> using namespace std; typedef long long llong; typedef long double ld; typedef pair<int, int> pii; typedef pair<llong, llong> pll; int n, mod; char str[1000001]; int dp1[3][5][5]; int dp2[3][5][5]; int mx[1000001]; int mn[1000001]; int main() { scanf("%d%d%s", &n, &mod, str); int sum = 0, mxx = 0, mnx = 0; for (int i = 0; i < n; ++i) { --sum; mx[i] = max(mxx, sum); mn[i] = min(mnx, sum); if (str[i] == 'P') sum += 2; mxx = max(mxx, sum); mnx = min(mnx, sum); } dp1[2][2][2] = 1; int ans = 1; for (int i = n; i--; ) { if (str[i] == 'P') { for (int j = 0; j < 3; ++j) { for (int k = max(j, 2); k <= j + 2; ++k) { for (int l = j; l <= k; ++l) { if (0 <= l + mn[i] && l + mx[i] <= 4 && max(k, l + mx[i]) - min(j, l + mn[i]) <= 2) { ans += dp1[j][k][l]; ans %= mod; } } } } } for (int j = 0; j < 3; ++j) { for (int k = max(j, 2); k <= j + 2; ++k) { for (int l = j; l <= k; ++l) { if (l < 4) dp2[j][max(k, l + 1)][l + 1] += dp1[j][k][l]; if (l > 0) dp2[min(j, l - 1)][k][l - 1] += dp1[j][k][l]; } } } for (int j = 0; j < 3; ++j) { for (int k = max(j, 2); k <= j + 2; ++k) { for (int l = j; l <= k; ++l) { dp1[j][k][l] = dp2[j][k][l] % mod; dp2[j][k][l] = 0; } } } } printf("%d\n", ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 412 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 412 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 488 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 488 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 564 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 620 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 620 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 620 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 620 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 620 KB | Output is correct |
2 | Correct | 2 ms | 620 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 636 KB | Output is correct |
2 | Incorrect | 2 ms | 636 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 636 KB | Output is correct |
2 | Incorrect | 3 ms | 636 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 764 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 764 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 13 ms | 1148 KB | Output isn't correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 14 ms | 1276 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 54 ms | 3324 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 67 ms | 4092 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 86 ms | 5152 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 112 ms | 6012 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 169 ms | 9428 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |