結果
| 問題 | No.179 塗り分け |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-04 22:58:26 |
| 言語 | C++17 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,517 bytes |
| 記録 | |
| コンパイル時間 | 901 ms |
| コンパイル使用メモリ | 102,024 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2026-01-04 22:58:30 |
| 合計ジャッジ時間 | 3,326 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 WA * 2 |
| other | AC * 29 WA * 11 |
ソースコード
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool verifier(vector<string> f, pair<int,int> direction, int width, int height, int blacks) {
int painted = 0;
auto field = f;
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
if (field[i][j]!='#') continue;
if (direction.first && direction.second) return false;
field[i][j] = 'R';
int X =j + direction.second;
int Y =i + direction.first;
if (Y>=height || X<0 || X>=width || field[Y][X]!='#') {return false;}
else {field[Y][X] = 'B'; painted += 2;}
}
}
return blacks==painted;
}
int main() {
int w,h;
cin >> h >> w;
string s;
vector<string> m;
for(int i=0;i<h;i++) {
cin >> s;
m.push_back(s);
}
int b = 0;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
if (m[i][j]=='#') b++;
}
}
vector<pair<int, int>> dirs;
pair<int,int> p;
int d2, d1 = 0;
for(d2=0;d2<w;d2++) {
p.first = d1; p.second = d2;
dirs.push_back(p);
}
for(d1=1;d1<h;d1++){
for(d2=-w+1;d2<w;d2++){
p.first = d1; p.second = d2;
dirs.push_back(p);
}
}
for(auto dr : dirs) {
if (verifier(m, dr, w, h, b)) {cout << "YES" << endl; return 0;}
}
cout << "NO" << endl;
return 0;
}