페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1848

[초등부] 2022 KOI 2차대회 대비 모의고사 (6월 3주차)

격자판 회전
서브태스크
2초 2048MB

문제

격자판에 1 또는 2가 쓰여있습니다.

 

우리는 격자판을 상하좌우로 몇 번이고 회전시킬 수 있습니다.

격자판을 이동시킬 때 특정행 또는 특정열만 회전할 수는 없고 전체행 또는 열이 동시에 회전해야 합니다.

예를 들어 격자판을 위로 한 칸 회전할 시, 모든 열의 맨 위 칸은 맨 아래 칸으로 이동하게 됩니다.

다른 방향도 마찬가지입니다.

 

인접한 2 x 2 칸에 동일한 수가 쓰여있으면 우리는 이것을 '편리하다'라고 할 것 입니다.

상하좌우로 회전시킨 결과, '편리한' 위치의 개수가 변경될 수 있습니다.

 

격자판을 회전시켜서 얻을 수 있는 '편리한' 위치의 개수의 최댓값을 구하세요.​ 


입력

첫 번쨰 줄에는 격자판의 행과 열의 수를 나타내는 n과 m이 공백으로 구분되어 주어집니다.

다음의 n개의 줄에는 위에서 격자판의 모양이 주어집니다.

격자판은 1 또는 2로만 이루어져 있습니다.

 

부분문제

#1(37점) : 2 <= n, m <= 50

#2(28점) : 2 <= n, m <= 300

#3(35점) : 2 <= n, m <= 1000​ 


출력

첫 번쨰 줄에 격자판을 회전시켜서 얻을 수 있는 '편리한' 위치의 개수의 최댓값을 출력하세요. 


예제 #1

2 4

1221
1221
2

예제 #2

3 2

22
22
22
2

예제 #3

3 3

111
121
111
3
로그인해야 코드를 작성할 수 있어요.