Submission #39187426


Source Code Expand

#include <bits/stdc++.h>
#define N 2100
#define MOD 998244353
using namespace std;
int n, m, dp[N][N][2][2];
char mp[N][N];
void add(int &a, int b) {
  a += b;
  if (a >= MOD) a -= MOD;
}
int main() {
  cin.tie(0)->sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> mp[i][j];
  dp[1][1][0][0] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      for (int x = 0; x <= 1; x++)
        for (int y = 0; y <= 1; y++) {
          if (i != 1) {
            add(dp[i][j][x][y], dp[i - 1][j][x][y]);
            if (mp[i][j] == 'Y' && mp[i - 1][j] == 'Y') {
              if (!x) add(dp[i][j][1][y], dp[i - 1][j][x][y]);
              if (!y) add(dp[i][j][x][1], dp[i - 1][j][x][y]);
              if (!x && !y) add(dp[i][j][1][1], dp[i - 1][j][x][y]);
            }
          }
          if (j != 1) {
            add(dp[i][j][x][y], dp[i][j - 1][x][y]);
            if (mp[i][j] == 'Y' && mp[i][j - 1] == 'Y') {
              if (!x) add(dp[i][j][1][y], dp[i][j - 1][x][y]);
              if (!y) add(dp[i][j][x][1], dp[i][j - 1][x][y]);
              if (!x && !y) add(dp[i][j][1][1], dp[i][j - 1][x][y]);
            }
          }
        }
    }
  cout << dp[n][m][1][1] << '\n';
  return 0;
}

Submission Info

Submission Time
Task C - YY Square
User swiftc
Language C++ (GCC 9.2.1)
Score 600
Code Size 1310 Byte
Status AC
Exec Time 186 ms
Memory 73360 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 3432 KiB
00-sample-002.txt AC 2 ms 3556 KiB
00-sample-003.txt AC 2 ms 3544 KiB
01-001.txt AC 2 ms 3492 KiB
01-002.txt AC 2 ms 3488 KiB
01-003.txt AC 2 ms 3588 KiB
01-004.txt AC 2 ms 3616 KiB
01-005.txt AC 2 ms 3460 KiB
01-006.txt AC 13 ms 15584 KiB
01-007.txt AC 15 ms 15624 KiB
01-008.txt AC 13 ms 15680 KiB
01-009.txt AC 15 ms 15528 KiB
01-010.txt AC 15 ms 15588 KiB
01-011.txt AC 12 ms 15680 KiB
01-012.txt AC 177 ms 73276 KiB
01-013.txt AC 186 ms 73320 KiB
01-014.txt AC 181 ms 73320 KiB
01-015.txt AC 185 ms 73240 KiB
01-016.txt AC 152 ms 73252 KiB
01-017.txt AC 151 ms 73212 KiB
01-018.txt AC 181 ms 73272 KiB
01-019.txt AC 182 ms 73216 KiB
01-020.txt AC 147 ms 73276 KiB
01-021.txt AC 147 ms 73272 KiB
01-022.txt AC 182 ms 73248 KiB
01-023.txt AC 183 ms 73260 KiB
01-024.txt AC 183 ms 73308 KiB
01-025.txt AC 181 ms 73272 KiB
01-026.txt AC 182 ms 73212 KiB
01-027.txt AC 182 ms 73328 KiB
01-028.txt AC 168 ms 73204 KiB
01-029.txt AC 169 ms 73248 KiB
01-030.txt AC 169 ms 73328 KiB
01-031.txt AC 168 ms 73252 KiB
01-032.txt AC 167 ms 73240 KiB
01-033.txt AC 167 ms 73360 KiB
01-034.txt AC 176 ms 73272 KiB
01-035.txt AC 177 ms 73236 KiB
01-036.txt AC 175 ms 73248 KiB
01-037.txt AC 175 ms 73240 KiB
01-038.txt AC 174 ms 73252 KiB
01-039.txt AC 176 ms 73320 KiB
01-040.txt AC 180 ms 73216 KiB
01-041.txt AC 145 ms 73308 KiB
01-042.txt AC 2 ms 3564 KiB
01-043.txt AC 13 ms 15588 KiB
01-044.txt AC 2 ms 3584 KiB
01-045.txt AC 2 ms 3560 KiB
01-046.txt AC 14 ms 15612 KiB
01-047.txt AC 14 ms 15612 KiB