만드는 중입니다

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

행렬 게임

면접 대비

시간 제한1초메모리 제한2048 MB

요약
열마다 |a-b|가 가장 큰 행을 고르고, Chan이 부른 M개의 열에서 얻는 값을 모두 더한 최대 Diff를 구합니다.
난이도

쉬움10점 중 2점

유형
배열, 구현
정답자
아직 제출이 없습니다

문제

훈과 찬은 행렬 게임을 하고 있다. 두 사람은 각각 N×NN \times N 행렬 A=(aij)A = (a_{ij})와 B=(bij)B = (b_{ij})를 가지고 있다.

게임은 MM개 라운드로 진행된다. 각 라운드에서 훈과 찬은 동시에 숫자 α\alpha와 β\beta를 부른다. 여기서 α\alpha와 β\beta는 1 이상 NN 이하의 정수이다. 훈은 aαβa_{\alpha\beta}점, 찬은 bαβb_{\alpha\beta}점을 얻는다.

전날 밤 꿈에서 훈은 찬이 각 라운드에서 부를 MM개의 숫자 β1,β2,…,βM\beta_1, \beta_2, \dots, \beta_M을 보았다. 따라서 훈은 Diff가 최대가 되도록 MM개의 숫자 α1,α2,…,αM\alpha_1, \alpha_2, \dots, \alpha_M을 고를 수 있다. Diff는 ∑k=1M∣aαkβk−bαkβk∣\sum_{k=1}^M \left| a_{\alpha_k \beta_k} - b_{\alpha_k \beta_k} \right|로 정의하며, 각 라운드에서 두 사람이 얻는 점수 차이의 절댓값을 모두 더한 값이다.

찬이 각 라운드에서 부르는 MM개의 숫자가 주어질 때, 훈이 Diff를 최대화하도록 숫자를 고른다면 Diff의 최대값을 출력하는 프로그램을 작성하시오.

입력

첫 번째 줄에 두 정수 NN과 MM (1≤N≤1,0001 \le N \le 1,000, 1≤M≤1,000,0001 \le M \le 1,000,000)이 주어진다. NN은 두 사람이 가진 행렬의 크기이고, MM은 게임의 라운드 수이다.

이어지는 NN개 줄의 ii번째 줄에는 훈의 행렬 AA의 ii번째 행에 해당하는 NN개의 정수가 주어진다. 그다음 NN개 줄에는 찬의 행렬 BB의 행들이 같은 방식으로 주어진다. 행렬의 모든 값은 0 이상 1,000 이하의 정수이다.

마지막 줄에는 찬이 각 라운드에서 부르는 1 이상 NN 이하의 정수 MM개가 주어진다.

출력

훈이 Diff를 최대화하도록 MM개의 숫자를 고를 때, Diff의 최대값을 출력한다.

예제2

  1. 예제 1

    입력
    2 2
    1 2
    0 1
    3 1
    2 1
    2 1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 3
    5 0
    2 6
    3 3
    3 2
    1 1 2
    
    예상 출력
    8