만드는 중입니다

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

보호 장벽

시간 제한5초메모리 제한1024 MB

요약
각 시도마다 주문 세기의 순서를 정해 q개 구간 최댓값의 합을 최대로 만드는 값을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 비트 연산, 정렬
정답자
아직 제출이 없습니다

문제

말레피센트는 토프키 볼로트 늪지를 지키는 보호 장벽을 만드는 연습을 하고 있다. 장벽을 만드는 과정은 nn개의 주문을 외우는 것으로 이루어진다. ii번째로 외운 주문의 세기를 sis_i라고 하자. 그러면 장벽의 강도는 다음과 같다.

∑i=1qmax⁡j=lirisj\sum_{i=1}^{q} \max_{j=l_i}^{r_i} s_j

여기서 모든 1≤i≤q1 \le i \le q에 대해 1≤li≤ri≤n1 \le l_i \le r_i \le n이다.

말레피센트는 장벽을 mm번 만들어 보려고 한다. ii번째 시도에서는 세기가 ai,1,ai,2,…,ai,na_{i,1}, a_{i,2}, \ldots, a_{i,n}인 주문을 외울 계획이다. 다만 시도마다 주문을 외우는 순서는 아직 정하지 않았다. 각 시도에서 말레피센트가 달성할 수 있는 장벽의 최대 강도를 구하라.

입력

첫 줄에 두 정수 nn과 mm이 주어진다. nn은 장벽 하나를 만드는 데 쓰는 주문의 수이고, mm은 장벽을 만들어 보는 시도 횟수이다 (1≤n≤301 \le n \le 30, 1≤m≤1 0001 \le m \le 1\,000).

둘째 줄에 정수 qq(1≤q≤301 \le q \le 30)가 주어진다.

이어지는 qq개의 줄에 정수 lil_i와 rir_i가 주어진다(1≤li≤ri≤n1 \le l_i \le r_i \le n).

이어지는 mm개의 줄에 정수 nn개씩 ai,1,ai,2,…,ai,na_{i,1}, a_{i,2}, \ldots, a_{i,n}이 주어진다(0≤ai,j≤1090 \le a_{i,j} \le 10^9).

출력

각 시도마다 말레피센트가 달성할 수 있는 장벽의 최대 강도를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

    입력
    3 4
    2
    1 2
    2 3
    1 1 1
    1 5 1
    10 1 7
    4 2 0
    
    예상 출력
    2
    10
    20
    8