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
AC × 3
AC × 50
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