Submission #39151958
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/modint>
using namespace std;
using namespace atcoder;
using mint = modint998244353;
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
int H, W;
cin >> H >> W;
vector<string> G(H);
for (int h = 0; h < H; ++h) cin >> G[h];
using ARR = array<mint, 3>;
vector<vector<ARR>> dp(H, vector<ARR>(W));
dp[0][0][0] = 1;
int dx[] = {0, 1};
int dy[] = {1, 0};
for (int x = 0; x < H; ++x) {
for (int y = 0; y < W; ++y) {
for (int d = 0; d < 2; ++d) {
int nx = x + dx[d], ny = y + dy[d];
if (nx == H || ny == W) continue;
ARR& A = dp[x][y];
ARR& B = dp[nx][ny];
bool YY = (G[x][y] == 'Y' && G[nx][ny] == 'Y');
if (!YY) {
B[0] += A[0];
B[1] += A[1];
B[2] += A[2];
}
if (YY) {
B[0] += A[0];
B[1] += A[0] + A[1];
B[2] += A[0] + A[1] + A[1] + A[2];
}
}
}
}
mint ans = dp[H - 1][W - 1][2];
cout << ans.val() << '\n';
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - YY Square |
| User | maspy |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 1106 Byte |
| Status | AC |
| Exec Time | 103 ms |
| Memory | 54400 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt |
| All | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt, 01-044.txt, 01-045.txt, 01-046.txt, 01-047.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-001.txt | AC | 11 ms | 3496 KiB |
| 00-sample-002.txt | AC | 2 ms | 3652 KiB |
| 00-sample-003.txt | AC | 2 ms | 3632 KiB |
| 01-001.txt | AC | 3 ms | 3500 KiB |
| 01-002.txt | AC | 2 ms | 3492 KiB |
| 01-003.txt | AC | 4 ms | 3600 KiB |
| 01-004.txt | AC | 2 ms | 3600 KiB |
| 01-005.txt | AC | 2 ms | 3640 KiB |
| 01-006.txt | AC | 2 ms | 3772 KiB |
| 01-007.txt | AC | 3 ms | 3740 KiB |
| 01-008.txt | AC | 2 ms | 3708 KiB |
| 01-009.txt | AC | 2 ms | 3776 KiB |
| 01-010.txt | AC | 2 ms | 3616 KiB |
| 01-011.txt | AC | 3 ms | 3756 KiB |
| 01-012.txt | AC | 103 ms | 54392 KiB |
| 01-013.txt | AC | 103 ms | 54368 KiB |
| 01-014.txt | AC | 93 ms | 54344 KiB |
| 01-015.txt | AC | 94 ms | 54352 KiB |
| 01-016.txt | AC | 76 ms | 54352 KiB |
| 01-017.txt | AC | 77 ms | 54192 KiB |
| 01-018.txt | AC | 92 ms | 54304 KiB |
| 01-019.txt | AC | 86 ms | 54248 KiB |
| 01-020.txt | AC | 75 ms | 54368 KiB |
| 01-021.txt | AC | 72 ms | 54188 KiB |
| 01-022.txt | AC | 101 ms | 54284 KiB |
| 01-023.txt | AC | 103 ms | 54340 KiB |
| 01-024.txt | AC | 101 ms | 54360 KiB |
| 01-025.txt | AC | 102 ms | 54372 KiB |
| 01-026.txt | AC | 102 ms | 54340 KiB |
| 01-027.txt | AC | 101 ms | 54256 KiB |
| 01-028.txt | AC | 92 ms | 54308 KiB |
| 01-029.txt | AC | 91 ms | 54340 KiB |
| 01-030.txt | AC | 90 ms | 54356 KiB |
| 01-031.txt | AC | 93 ms | 54360 KiB |
| 01-032.txt | AC | 93 ms | 54400 KiB |
| 01-033.txt | AC | 89 ms | 54284 KiB |
| 01-034.txt | AC | 94 ms | 54400 KiB |
| 01-035.txt | AC | 91 ms | 54188 KiB |
| 01-036.txt | AC | 92 ms | 54252 KiB |
| 01-037.txt | AC | 93 ms | 54360 KiB |
| 01-038.txt | AC | 92 ms | 54304 KiB |
| 01-039.txt | AC | 91 ms | 54368 KiB |
| 01-040.txt | AC | 83 ms | 54360 KiB |
| 01-041.txt | AC | 72 ms | 54344 KiB |
| 01-042.txt | AC | 3 ms | 3552 KiB |
| 01-043.txt | AC | 2 ms | 3772 KiB |
| 01-044.txt | AC | 3 ms | 3556 KiB |
| 01-045.txt | AC | 2 ms | 3612 KiB |
| 01-046.txt | AC | 2 ms | 3796 KiB |
| 01-047.txt | AC | 2 ms | 3720 KiB |