고양이 구스와 무작위 행렬
시간 제한3초메모리 제한1024 MB
0부터 p-1까지의 난수로 채워진 n×m 표에서 합이 p로 나누어떨어지는 부분 직사각형 중 합이 가장 큰 것을 구합니다.
문제
고양이 구스는 닉 퓨리를 위해 크기가 인 직사각형 표 를 준비했다. 표의 각 칸에는 부터 까지의 정수가 들어 있다.
닉 퓨리는 표의 모든 수가 부터 까지의 수 중에서 서로 독립적으로, 같은 확률로 무작위 선택되었다는 것을 바로 알아챘다.
표에서 원소의 합이 로 나누어떨어지는 직사각형 부분행렬을 찾으세요. 그런 부분행렬 중 합이 최대인 것을 구해야 합니다. 형식적으로는 , 을 만족하고, , 에 대한 의 합이 로 나누어떨어지며, 그 합이 최대인 부분행렬을 찾습니다.
입력
첫 줄에 세 정수 , , ()가 주어진다. 각각 표의 크기와, 부분행렬의 합이 나누어떨어져야 하는 수다.
이어서 개의 줄에 각각 개의 정수가 주어진다. 번째 줄의 번째 수는 다 ().
의 각 수는 서로 독립적으로, 부터 까지 중에서 같은 확률로 무작위 선택되었다고 보장된다.
출력
합이 로 나누어떨어지는 직사각형 부분행렬의 합 중 최대값을 정수 하나로 출력한다. 그런 부분행렬이 없으면 을 출력한다.