読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #209 (Div. 2)

はい。
http://codeforces.com/contest/359

A. Table

ざっくりと大意

・1のタイルと四隅のドコかの角を対角に結ぶ範囲を塗りつぶして、全てのタイルを塗りつぶすのに何手かかるか??
・四隅に1が無いことは保証されているらしい。

方針のようなもの

・てきとーに検索してたら解法を見てしまった/(^o^)\

n,m=map(int,raw_input().split())
ans=chk=0
for i in range(n):
    l=[int(x) for x in raw_input().split()]
    if (i==0 and 1 in l) or (i==n-1 and 1 in l):
        chk=1
    elif l[0]==1 or l[-1]==1:
        chk=1
print 2 if chk else 4

外周の側に1があったらソコを起点に2回で塗れる。塗りつぶしているマスの中に1を含んでいてもそのまま隅まで塗りつぶせて、また同じ1を起点に反対側の隅まで塗りつぶせば2回である。
1が内側にしかない場合はサンプルの1の図のように4回になる。