結果
問題 |
No.2837 Flip Triomino
|
ユーザー |
![]() |
提出日時 | 2024-08-10 16:46:52 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 2,000 ms |
コード長 | 683 bytes |
コンパイル時間 | 3,179 ms |
コンパイル使用メモリ | 246,380 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-08-10 16:46:57 |
合計ジャッジ時間 | 4,270 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/modint> using mint = atcoder::modint998244353; using namespace std; using ll = long long; int main() { int n, m; cin >> n >> m; int b[3] = {}, q[3] = {}; for (int i = 0; i < n; i++) { string s; cin >> s; for (int j = 0; j < m; j++) { int k = (i + j) % 3; b[k] ^= s[j] == 'B'; q[k] += s[j] == '?'; } } mint x = 0; for (int h = 0; h < 2; h++) { mint t = 1; for (int k = 0; k < 3; k++) { t *= q[k] ? mint(2).pow(q[k] - 1) : b[k] == h; } x += t; } cout << x.val() << endl; return 0; }