만드는 중입니다

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

능력 드래프트

시간 제한2초메모리 제한512 MB

요약
선택 순서와 능력 강도가 주어졌을 때, 각 플레이어가 최적으로 고를 때 두 팀 총 강도의 차이를 구합니다.
난이도

어려움10점 중 8점

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

문제

Dota 2는 경쟁형 멀티플레이어 컴퓨터 게임이다. 각각 nn명으로 이루어진 두 팀이 상대 팀의 본진인 Ancient를 파괴하려고 싸운다. 각 플레이어는 영웅 한 명을 조종하며, 각 영웅은 정확히 ss개의 일반 능력과 정확히 하나의 궁극기 능력을 가진다.

능력 드래프트는 Dota 2의 모드 가운데 하나다. 게임이 시작되면 각 플레이어는 능력이 없는 영웅을 무작위로 받는다. 이후 플레이어들은 게임이 제공하는 풀에서 정해진 순서대로 능력을 고른다. 자기 차례에는 남은 일반 능력 중 아무거나 고를 수 있다. 아직 궁극기 능력을 고르지 않았다면 남은 궁극기 능력 중에서도 아무거나 고를 수 있다. 풀에는 두 종류의 능력이 충분히 들어 있어서, 모든 플레이어가 항상 일반 능력 ss개와 궁극기 능력 하나를 고를 수 있다.

팀의 전력은 그 팀 모든 영웅이 가진 모든 능력 전력의 합이다. 모든 플레이어는 드래프트가 끝났을 때 자기 팀 전력에서 상대 팀 전력을 뺀 값이 최대가 되도록 능력을 고른다.

풀에 있는 능력의 전력과 선택 순서가 주어질 때, 모든 플레이어가 최적으로 고른다면 두 팀 전력의 차이는 얼마인지 구하라.

입력

첫째 줄에는 두 정수 nn과 ss(1≤n≤51 \le n \le 5, 1≤s≤31 \le s \le 3)가 주어진다. 각각 한 팀의 플레이어 수와 영웅 한 명이 가진 일반 능력의 수다.

둘째 줄에는 선택 순서에 따른 플레이어 번호 2n⋅(s+1)2n \cdot (s + 1)개가 주어진다. 이 배열에서 11부터 2n2n까지의 번호는 각각 정확히 s+1s + 1번씩 나타난다. 번호가 11부터 nn까지인 플레이어는 첫 번째 팀, 번호가 n+1n + 1부터 2n2n까지인 플레이어는 두 번째 팀에 속한다.

셋째 줄에는 풀에 있는 일반 능력의 수 psp_s(2n⋅s≤ps≤362n \cdot s \le p_s \le 36)가 주어진다.

넷째 줄에는 일반 능력의 전력 psp_s개가 11부터 10610^6 사이의 정수로 주어진다.

다섯째 줄에는 풀에 있는 궁극기 능력의 수 pup_u(2n≤pu≤122n \le p_u \le 12)가 주어진다.

여섯째 줄에는 궁극기 능력의 전력 pup_u개가 11부터 10610^6 사이의 정수로 주어진다.

출력

모든 플레이어가 최적으로 고른 뒤, 모든 선택이 끝났을 때 두 팀 전력의 차이를 나타내는 정수 하나를 출력하라.

예제3

  1. 예제 1

    입력
    1 1
    1 2 2 1
    2
    5 3
    2
    7 2
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    2 1
    1 3 4 2 2 4 3 1
    6
    1 4 4 8 9 11
    5
    14 11 10 8 5
    
    예상 출력
    -1