結果
問題 |
No.179 塗り分け
|
ユーザー |
|
提出日時 | 2025-02-20 08:42:06 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,631 bytes |
コンパイル時間 | 3,484 ms |
コンパイル使用メモリ | 280,024 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2025-02-20 08:42:12 |
合計ジャッジ時間 | 5,830 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 38 WA * 2 |
ソースコード
#include <bits/stdc++.h> // #include <boost/multiprecision/cpp_int.hpp> using namespace std; // using bigint = boost::multiprecision::cpp_int; template <typename T> using min_priority_queue = priority_queue<T,vector<T>,greater<T>>; random_device seed_gen; mt19937 engine(seed_gen()); int64_t get_time_ns(){ struct::timespec t; clock_gettime(CLOCK_MONOTONIC, &t); return t.tv_sec * int64_t(1'000'000'000) + t.tv_nsec; } bool solve() { int h, w; cin >> h >> w; vector<string> S(h); for(auto &s : S) cin >> s; for(int di = 0; di < h; di++) { for(int dj = -w; dj < w; dj++) { if(di == 0 && dj == 0) continue; auto T = S; for(int i = 0; i < h; i++) { for(int j = 0; j < w; j++) { int ii = i + di; int jj = j + dj; if(ii < 0 || h <= ii || jj < 0 || w <= jj) continue; if(T[i][j] == '#' && T[ii][jj] == '#') { T[i][j] = 'R'; T[ii][jj] = 'B'; } } } bool b = true; for(int i = 0; i < h; i++) { for(int j = 0; j < w; j++) { if(T[i][j] == '#') b = false; } } if(b) return b; if(0) { cout << di << " " << dj << endl; for(auto s : T) cout << s << endl; } } } return false; } int main() { bool ans = solve(); if(ans) cout << "YES" << endl; else cout << "NO" << endl; return 0; }