結果
問題 |
No.2837 Flip Triomino
|
ユーザー |
![]() |
提出日時 | 2024-08-09 23:36:06 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 66 ms / 2,000 ms |
コード長 | 610 bytes |
コンパイル時間 | 479 ms |
コンパイル使用メモリ | 82,376 KB |
実行使用メモリ | 65,860 KB |
最終ジャッジ日時 | 2024-08-09 23:36:10 |
合計ジャッジ時間 | 3,632 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
N, M = map(int, input().split()) S = [input() for _ in range(N)] a = [[0, 0] for _ in range(3)] for i in range(N): for j in range(M): if S[i][j] == "B": a[(i+j)%3][0] += 1 elif S[i][j] == "?": a[(i+j)%3][1] += 1 ans = [[0, 0] for _ in range(3)] for i in range(3): if a[i][1] == 0: ans[i][(a[i][0]+1)%2] = -10000000 else: ans[i][0] = a[i][1]-1 ans[i][1] = a[i][1]-1 #print(ans) cnt = max(ans[0][0]+ans[1][0]+ans[2][0], ans[0][1]+ans[1][1]+ans[2][1]) if ans[0][0]+ans[1][0]+ans[2][0] == ans[0][1]+ans[1][1]+ans[2][1]: cnt += 1 #print(cnt) if cnt < 0: print(0) else: print(pow(2, cnt, 998244353))