배열 게임
시간 제한1초메모리 제한128 MB
매 턴 모든 수를 좌우로 한 칸씩 옮겨 고정된 더하기와 빼기 칸에 닿을 때 얻는 점수 합이 최대가 되도록 합니다.
문제
양쪽으로 끝없이 이어지는 1차원 배열에서 진행하는 1인용 게임이 있다. 배열의 각 칸에는 정수 하나, + 기호, - 기호가 놓여 있거나 아무것도 놓여 있지 않다. 플레이어는 한 턴마다 배열에 남아 있는 정수를 모두 왼쪽으로 한 칸 또는 오른쪽으로 한 칸 옮길 수 있다. 기호는 움직이지 않는다.
점수는 0에서 시작한다. 정수 가 기호 가 놓인 칸으로 옮겨지면 그 정수는 배열에서 사라지고 점수가 만큼 늘어난다. 이때 +는 , -는 로 계산한다.
플레이어는 원하는 순간에 게임을 멈출 수 있다.
아래 그림은 처음 배열과 오른쪽으로 두 번 옮긴 뒤의 배열을 보여 준다.

처음 배열이 주어질 때 플레이어가 얻을 수 있는 가장 큰 점수를 구하라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 정수의 개수 (), + 기호의 개수 (), - 기호의 개수 ()이 주어진다. 이어지는 개의 줄에는 번째 정수의 위치 ()와 값 ()가 주어진다. 그다음 줄에는 + 기호 개의 위치가, 그다음 줄에는 - 기호 개의 위치가 주어진다. 모든 위치는 이상 이하이고, 정수와 기호를 통틀어 같은 위치에 놓인 원소는 없다. 0 0 0이 적힌 줄이 나오면 입력이 끝난다.
출력
각 테스트 케이스마다 플레이어가 얻을 수 있는 가장 큰 점수를 한 줄에 출력한다.