만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Ivo화

시간 제한1.5초메모리 제한128 MB

요약
크기가 K인 정사각 부분행렬마다 K^2개 원소의 모든 쌍 절댓값 차이 합을 구해 모두 더한 값을 10007로 나눈 나머지를 출력한다.
난이도

어려움10점 중 8점

유형
정렬, 누적 합, 수학, 구현
정답자
아직 제출이 없습니다

문제

Ivo는 행렬을 다루며 노는 것을 좋아한다. 최근에는 정사각 행렬 하나에 적용하는 연산을 만들고 Ivo화라고 이름 붙였다.

Ivo화는 정사각 행렬 하나에서 수 하나를 계산하는 연산이다. 그 수는 행렬에 들어 있는 모든 수 쌍의 차의 절댓값을 더한 값이다. 행렬의 원소를 a1,a2,…,aK2a_1, a_2, \dots, a_{K^2}이라고 하면 Ivo화 값은 ∑i=1K2∑j=1K2∣ai−aj∣\sum_{i=1}^{K^2} \sum_{j=1}^{K^2} |a_i - a_j|이다. 두 첨자가 같은 쌍도 더하지만 그 값은 0이다. 예를 들어 수 (1, 5, 2, 4)를 담은 정사각 행렬의 Ivo화 값은 다음과 같이 28이다.

∣1−1∣+∣1−5∣+∣1−2∣+∣1−4∣+∣5−5∣+∣5−1∣+∣5−2∣+∣5−4∣+∣2−2∣+∣2−1∣+∣2−5∣+∣2−4∣+∣4−4∣+∣4−1∣+∣4−5∣+∣4−2∣=28|1-1| + |1-5| + |1-2| + |1-4| + |5-5| + |5-1| + |5-2| + |5-4| + |2-2| + |2-1| + |2-5| + |2-4| + |4-4| + |4-1| + |4-5| + |4-2| = 28

Ivo는 NN행 MM열 행렬 안에 완전히 들어가면서 행이 정확히 KK개, 열이 정확히 KK개인 모든 정사각 부분행렬의 Ivo화 값을 모두 더하고 싶다. 그 합을 구하라.

입력

첫째 줄에 자연수 NN, MM, KK가 주어진다 (1≤N,M,K≤5001 \le N, M, K \le 500).

다음 NN개 줄에는 각각 MM개의 수 AijA_{ij}가 주어진다 (1≤Aij≤1091 \le A_{ij} \le 10^9).

모든 AijA_{ij}는 서로 다르다.

출력

첫째 줄에 변의 길이가 KK인 모든 정사각 부분행렬의 Ivo화 값의 합을 1000710007로 나눈 나머지 SS를 출력한다.

KK가 NN보다 크거나 MM보다 크면 그런 부분행렬이 하나도 없으므로 SS는 00이다.

예제2

  1. 예제 1

    입력
    3 3 2
    1 2 3
    4 5 6
    7 8 9
    
    예상 출력
    112
    
  2. 예제 2

    입력
    2 5 2
    17 1 2 3 10
    18 4 5 6 11
    
    예상 출력
    240