結果
問題 | No.179 塗り分け |
ユーザー |
![]() |
提出日時 | 2015-12-29 12:33:29 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 30 ms / 3,000 ms |
コード長 | 2,317 bytes |
コンパイル時間 | 845 ms |
コンパイル使用メモリ | 112,324 KB |
実行使用メモリ | 30,264 KB |
最終ジャッジ日時 | 2024-07-23 14:33:30 |
合計ジャッジ時間 | 3,219 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; namespace yukicoder { class _179 { static void Main() { int[] hw = Array.ConvertAll(Console.ReadLine().Split(' ') , x => int.Parse(x)); int h = hw[0]; int w = hw[1]; bool[,] b = new bool[h, w]; for (int i = 0; i < h; i++) { string iw = Console.ReadLine(); for (int j = 0; j < w; j++) { char ij = iw[j]; b[i, j] = ij == '#'; } } int i0 = -1; int j0 = -1; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { if(b[i,j]) { if (i0 == -1 && j0 == -1) { i0 = i; j0 = j; } else { int hd = i - i0; int wd = j - j0; if (isp(h, w, (bool[,])b.Clone(), hd, wd)) { Console.WriteLine("YES"); return; } } } } } Console.WriteLine("NO"); } static bool isp(int h, int w, bool[,] b, int hd, int wd) { for (int id = 0; id < h; id++) { for (int jd = 0; jd < w; jd++) { if (b[id, jd]) { if (id + hd < 0 || jd + wd < 0 || id + hd > h - 1 || jd + wd > w - 1) { return false; } if (b[id + hd, jd + wd]) { b[id + hd, jd + wd] = false; } else { return false; } } } } return true; } } }