능력 드래프트
시간 제한2초메모리 제한512 MB
선택 순서와 능력 강도가 주어졌을 때, 각 플레이어가 최적으로 고를 때 두 팀 총 강도의 차이를 구합니다.
문제
Dota 2는 경쟁형 멀티플레이어 컴퓨터 게임이다. 각각 명으로 이루어진 두 팀이 상대 팀의 본진인 Ancient를 파괴하려고 싸운다. 각 플레이어는 영웅 한 명을 조종하며, 각 영웅은 정확히 개의 일반 능력과 정확히 하나의 궁극기 능력을 가진다.
능력 드래프트는 Dota 2의 모드 가운데 하나다. 게임이 시작되면 각 플레이어는 능력이 없는 영웅을 무작위로 받는다. 이후 플레이어들은 게임이 제공하는 풀에서 정해진 순서대로 능력을 고른다. 자기 차례에는 남은 일반 능력 중 아무거나 고를 수 있다. 아직 궁극기 능력을 고르지 않았다면 남은 궁극기 능력 중에서도 아무거나 고를 수 있다. 풀에는 두 종류의 능력이 충분히 들어 있어서, 모든 플레이어가 항상 일반 능력 개와 궁극기 능력 하나를 고를 수 있다.
팀의 전력은 그 팀 모든 영웅이 가진 모든 능력 전력의 합이다. 모든 플레이어는 드래프트가 끝났을 때 자기 팀 전력에서 상대 팀 전력을 뺀 값이 최대가 되도록 능력을 고른다.
풀에 있는 능력의 전력과 선택 순서가 주어질 때, 모든 플레이어가 최적으로 고른다면 두 팀 전력의 차이는 얼마인지 구하라.
입력
첫째 줄에는 두 정수 과 (, )가 주어진다. 각각 한 팀의 플레이어 수와 영웅 한 명이 가진 일반 능력의 수다.
둘째 줄에는 선택 순서에 따른 플레이어 번호 개가 주어진다. 이 배열에서 부터 까지의 번호는 각각 정확히 번씩 나타난다. 번호가 부터 까지인 플레이어는 첫 번째 팀, 번호가 부터 까지인 플레이어는 두 번째 팀에 속한다.
셋째 줄에는 풀에 있는 일반 능력의 수 ()가 주어진다.
넷째 줄에는 일반 능력의 전력 개가 부터 사이의 정수로 주어진다.
다섯째 줄에는 풀에 있는 궁극기 능력의 수 ()가 주어진다.
여섯째 줄에는 궁극기 능력의 전력 개가 부터 사이의 정수로 주어진다.
출력
모든 플레이어가 최적으로 고른 뒤, 모든 선택이 끝났을 때 두 팀 전력의 차이를 나타내는 정수 하나를 출력하라.