배열 게임

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

양쪽으로 끝없이 이어지는 1차원 배열에서 진행하는 1인용 게임이 있다. 배열의 각 칸에는 정수 하나, + 기호, - 기호가 놓여 있거나 아무것도 놓여 있지 않다. 플레이어는 한 턴마다 배열에 남아 있는 정수를 모두 왼쪽으로 한 칸 또는 오른쪽으로 한 칸 옮길 수 있다. 기호는 움직이지 않는다.

점수는 0에서 시작한다. 정수 II가 기호 SS가 놓인 칸으로 옮겨지면 그 정수는 배열에서 사라지고 점수가 S×IS \times I만큼 늘어난다. 이때 +는 +1+1, -는 1-1로 계산한다.

플레이어는 원하는 순간에 게임을 멈출 수 있다.

아래 그림은 처음 배열과 오른쪽으로 두 번 옮긴 뒤의 배열을 보여 준다.

처음 배열이 주어질 때 플레이어가 얻을 수 있는 가장 큰 점수를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 정수의 개수 NN (1N1001 \le N \le 100), + 기호의 개수 NpN_p (1Np1001 \le N_p \le 100), - 기호의 개수 NmN_m (1Nm1001 \le N_m \le 100)이 주어진다. 이어지는 NN개의 줄에는 ii번째 정수의 위치 pip_i (300pi300-300 \le p_i \le 300)와 값 viv_i (9vi9-9 \le v_i \le 9)가 주어진다. 그다음 줄에는 + 기호 NpN_p개의 위치가, 그다음 줄에는 - 기호 NmN_m개의 위치가 주어진다. 모든 위치는 300-300 이상 300300 이하이고, 정수와 기호를 통틀어 같은 위치에 놓인 원소는 없다. 0 0 0이 적힌 줄이 나오면 입력이 끝난다.

출력

각 테스트 케이스마다 플레이어가 얻을 수 있는 가장 큰 점수를 한 줄에 출력한다.