행렬 게임

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

요약
두 N×N 행렬과 M개의 열 번호가 주어질 때, 각 라운드마다 행을 골라 절댓값 차이의 합이 최대가 되도록 만든다.
난이도

쉬움10점 중 3점

유형
배열, 그리디
정답자
아직 제출이 없습니다

문제

훈과 찬은 행렬 게임을 하고 있다. 두 사람은 각각 N×NN \times N 행렬 A=(a_ij)A = (a\_{ij})와 B=(b_ij)B = (b\_{ij})를 가지고 있다. 게임은 MM개 라운드로 구성되고, 각 라운드에서 훈과 찬은 동시에 각각 숫자 α\alpha와 β\beta를 부른다. 여기서, α\alpha와 β\beta는 11과 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 를 최대화하는 MM개 숫자들을 선택할때, Diff 의 최대값을 출력하는 프로그램을 작성하시오.

입력

입력은 표준 입력을 사용한다. 첫 번째 줄에 두 정수 NN과 MM (1≤N≤1,0001 ≤ N ≤ 1\\,000, 1≤M≤1,000,0001 ≤ M ≤ 1\\,000\\,000)이주어진다. 여기서, NN은 훈과 찬이 게임에서 가지고 있는 행렬의 크기이고 MM은 게임의 라운드개수이다. 다음 이어지는 NN개 줄의 ii번째 줄에는 훈의 행렬의 ii번째 행의 값들을 나타내는 NN개 정수가 주어진다. 다음 이어지는 NN개 줄의 ii번째 줄에는 찬의 행렬의 ii번째 행의 값들을 나타내는 NN개 정수가 주어진다. 이 행렬들의 값은 00 과 1,0001\\,000 사이의 정수이다. 다음 줄에는 찬이 각 라운드에서 부르는 11 과 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