RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 JOI00189

砂の城 (Sandcastle)

설명

JOI 君は家族とともに海水浴に来た.さんざん泳いで泳ぎ疲れた JOI 君は,次は砂浜で砂の城を作って遊んだ.しばらくして砂遊びにも飽きると,JOI 君は城を放置してまた海に泳ぎに向かった.

JOI 君が作った城は,砂浜のうちのある長方形の領域に含まれている.この長方形の領域は,東西南北にマス目状に区切られている.各マスは,JOI 君が作った城の一部であるマス (以下,「城マス」と呼ぶ) かそうでないマス (以下,「更地マス」と呼ぶ) のいずれかである.それぞれの城マスには「強度」と呼ばれる 1 以上 9 以下の整数が定まっている.長方形の領域の外縁部,すなわち外側と接しているマスには城マスは存在しない.

やがて潮が満ちてきて,長方形の領域にも波が押し寄せてくるようになった.波が 1 つ押し寄せてくるたびに,城マスのうち次の条件を満たすものはすべて一斉に崩壊して,更地マスに変化する.

条件: 周囲の 8 マス (東西南北および北東,北西,南東,南西方向に隣接するマス) にある更地マスの数が,そのマスの強度の値以上である.

波が引くと,まもなく次の波が押し寄せて来る.

十分多くの波が押し寄せると,城がすべて崩れてしまうか,丈夫な部分だけが残るかして,波が押し寄せてきても 1 つも城マスが崩壊しないような状態に落ち着く.1 つ以上の城マスを崩壊させるような波が押し寄せてくる回数を求めよ.

제약
입력 형식

入力は 1 + H 行からなる.

1 行目には,2 つの整数 H, W (\(2 \le H \le 1000, 2 \le W \le 1000\)) が空白を区切りとして書かれている.これは,長方形の領域が縦 H 行,横 W 列の \(H \times W\) 個のマスに区切られていることを表す.長方形の縦方向は南北方向であり,横方向は東西方向である.

続く H 行にはそれぞれ W 文字からなる文字列が書かれており,最初の波が押し寄せてくる前の長方形の領域の状態を表す.H 行のうちの i 行目の左から j 番目の文字 (\(1 \le i \le H, 1 \le j \le W\)) は,長方形の領域の北から i 行目,西から j 列目のマスが更地マスである場合は '.' (ピリオド) である.城マスである場合は '1', '2', ..., '9' のいずれかであり,そのマスの強度を表す.

長方形の領域の外縁部はすべて更地マスである.すなわち,すべての入力において,1 行目または H 行目の文字と,各行の左から 1 番目または W 番目の文字はすべて '.' である.

与えられる入力データのうち,入力 1 では \(H \le 50, W \le 50\) を満たす.

출력 형식

1 つ以上の城マスを崩壊させるような波が押し寄せてくる回数を 1 行で出力せよ.

예제 1
입력
5 6
......
.939..
.3428.
.9393.
......
출력
3
문제 정보

생성자가 기록되지 않았습니다.

출처 JOI 2015 Preliminary

평가 및 의견

砂の城 (Sandcastle)

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

砂の城 (Sandcastle)

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8