1+ import sys
2+ input = sys .stdin .readline
3+
4+ # ํ
ํธ๋ก๋ฏธ๋
ธ์ ์ ์ฒด ๊ฒฝ์ฐ์ ์๋ฅผ ์ ์ฅ
5+ tets = [
6+ # 1x4 ๋ง๋
7+ [(0 , 1 ), (0 , 2 ), (0 , 3 )], [(1 , 0 ), (2 , 0 ), (3 , 0 )],
8+ # 2x2 ์ ์ฌ๊ฐํ
9+ [(0 , 1 ), (1 , 0 ), (1 , 1 )],
10+ # ใน์ ๋ชจ์
11+ [(1 , 0 ), (1 , 1 ), (2 , 1 )], [(0 , 1 ), (1 , 0 ), (1 , - 1 )],
12+ # ใน์ ๋์นญ
13+ [(1 , 0 ), (1 , - 1 ), (2 , - 1 )], [(0 , 1 ), (1 , 1 ), (1 , 2 )],
14+ # ใด์ ๋ชจ์ (ํ์ ํฌํจ)
15+ [(1 , 0 ), (2 , 0 ), (2 , 1 )], [(0 , 1 ), (0 , 2 ), (1 , 0 )],
16+ [(0 , 1 ), (1 , 1 ), (2 , 1 )], [(0 , 1 ), (0 , 2 ), (- 1 , 2 )],
17+ [(1 , 0 ), (2 , 0 ), (2 , - 1 )], [(0 , 1 ), (0 , 2 ), (1 , 2 )],
18+ # ใด์ ๋์นญ (ํ์ ํฌํจ)
19+ [(1 , 0 ), (2 , 0 ), (0 , 1 )], [(1 , 0 ), (1 , 1 ), (1 , 2 )],
20+ [(1 , 0 ), (1 , 1 ), (1 , - 1 )], [(1 , 0 ), (1 , 1 ), (2 , 0 )],
21+ # ใ
์ ๋ชจ์ (ํ์ ํฌํจ)
22+ [(0 , - 1 ), (0 , 1 ), (1 , 0 )], [(0 , 1 ), (- 1 , 1 ), (1 , 1 )],
23+ [(0 , - 1 ), (0 , 1 ), (- 1 , 0 )], [(1 , 0 ), (0 , 1 ), (- 1 , 0 )],
24+ ]
25+
26+ # ์ฃผ์ด์ง ์ขํ์์ ํน์ ํ
ํธ๋ก๋ฏธ๋
ธ๋ฅผ ๋ฐฐ์นํ์ ๋์ ํฉ ๊ณ์ฐ
27+ def calc (i , j , tet ):
28+ total = arr [i ][j ] # ์์ ์ขํ์ ๊ฐ
29+ for di , dj in tet :
30+ ni , nj = i + di , j + dj
31+ # ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๋ฌดํจ
32+ if 0 <= ni < N and 0 <= nj < M :
33+ total += arr [ni ][nj ]
34+ else :
35+ return 0
36+ return total
37+
38+ # ๋ชจ๋ ์์น์์ ๊ฐ๋ฅํ ํ
ํธ๋ก๋ฏธ๋
ธ๋ฅผ ๋ฐฐ์นํด ์ต๋๊ฐ ๊ณ์ฐ
39+ def max_tetromino_sum ():
40+ max_sum = 0
41+ for i in range (N ):
42+ for j in range (M ):
43+ for tet in tets :
44+ max_sum = max (max_sum , calc (i , j , tet ))
45+ return max_sum
46+
47+
48+ N , M = map (int , input ().split ())
49+ arr = [list (map (int , input ().split ())) for _ in range (N )]
50+
51+ print (max_tetromino_sum ())
0 commit comments