해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
픽셀로 이루어진 2-d n행 m열 격자로 나타낼 수 있는 이미지가 주어진다. 이미지의 각 픽셀은 켜져 있거나 꺼져 있으며, 각각 문자 "0" 또는 "1"로 표시된다. 이 이미지를 압축하려고 한다. 정수 k > 1을 선택하고 이미지를 k행 k열 블록들로 나누려고 한다. n와 m가 k로 나누어떨어지지 않으면, 둘 다 k로 나누어떨어지도록 이미지의 오른쪽과 아래쪽을 영으로만 채운다. 각각의 개별 블록에 있는 모든 픽셀은 같은 값을 가져야 한다. 주어진 이미지는 현재 상태로 압축할 수 없을 수도 있다. 어떤 k에 대해 이미지를 압축할 수 있도록 만들기 위해 전환해야 하는 픽셀 수의 최솟값을 구하라. 이때 픽셀은 이미지를 채운 후에 전환한다. 더 구체적으로는 먼저 k을 선택하고, 그다음 이미지를 영으로 채운 뒤, 이 k에 대해 압축할 수 있도록 픽셀을 전환할 수 있다. 그 상태에서 이미지를 압축할 수 있어야 한다.
입력의 첫 번째 줄에는 이미지의 크기를 나타내는 두 정수 n, m (2 ≤ n, m ≤ 2 500)이 주어진다.
다음 n개의 입력 줄에는 이미지를 나타내는 정확히 m개의 문자로 이루어진 이진 문자열이 주어진다.
이미지를 압축할 수 있도록 만들기 위해 전환해야 하는 픽셀 수의 최솟값을 하나의 정수로 출력한다.
3 5
00100
10110
11001
5먼저 k = 2를 선택한다.
이미지는 다음과 같이 채워진다.
001000
101100
110010
000000
이미지를 다음과 같은 모습이 되도록 전환할 수 있다.
001100
001100
000000
000000
이 이미지는 k = 2에 대해 압축할 수 있음을 알 수 있다.