結果
問題 | No.179 塗り分け |
ユーザー |
|
提出日時 | 2016-05-13 16:04:39 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,219 bytes |
コンパイル時間 | 1,569 ms |
コンパイル使用メモリ | 168,300 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-03 03:19:34 |
合計ジャッジ時間 | 2,747 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 WA * 1 |
other | AC * 22 WA * 18 |
ソースコード
// スパゲティ #include<bits/stdc++.h> using namespace std; int data[200][200]; // 落ち対策 int ord[3000][2]; int main(){ int i, j, k, l; int h,w,n; int x,y; cin >> h>>w; n=0; for (y=0;y<h;y++) for (int x=0;x<w;x++){ char c;while ((cin >> c),c<32); if (c=='#'){ n+=1; data[x][y]=n; ord[n][0]=x; ord[n][1]=y; } } if (n%2==1 || n==0){ goto l_no; } int vx,vy; for (vx=-w+1,vy=-h+1;vy<h;vx++){ vector<int> memo(n+1,0); for (i=1;i<=n;i++){ x=ord[i][0]; y=ord[i][1]; if (x+vx<0 || y+vy<0) goto l_cont; if (memo[i]==0){ j= data[x+vx][y+vy]; if (j==0 || memo[j]!=0){ // HALT goto l_cont; } memo[j]=2; memo[i]=1; } } cout << "YES" << endl; return 0; l_cont: if (vx>=w){ vy++; vx=-1; } } l_no: cout << "NO" << endl; return 0; }