게임
시간 제한2초메모리 제한512 MB
각 시작 크기 P마다 두 명이 번갈아 버퍼에서 수를 고르고 이후 원소가 버퍼를 채우며, 앨리스 점수에서 밥 점수를 뺀 값을 구한다.
문제
Alice와 Bob이 다음 게임을 한다.
부터 까지 번호가 매겨진 개의 양의 정수 수열이 주어진다. 각 원소는 이하이며 같은 값이 여러 번 나올 수 있다. 게임이 시작되면 수열의 앞 개 원소로 다중집합 를 만든다. Alice가 먼저 움직이며 두 사람은 번갈아 둔다. 각 차례는 다음과 같이 진행된다.
- 차례인 사람은 에서 수 하나를 골라 꺼내고 그 값을 자신의 점수에 더한다. 두 사람의 점수는 처음에 모두 이다.
- 수열에 아직 들어오지 않은 수가 남았다면 그중 가장 앞선 수 하나를 에 넣는다. 즉 첫 번째로 꺼낸 뒤에는 번 원소가 들어오고, 두 번째로 꺼낸 뒤에는 번 원소가 들어오는 식이다. 수열이 이미 비었다면 아무것도 넣지 않는다.
가 빌 때까지 차례를 반복한다. 두 사람 모두 자신의 최종 점수가 가장 커지도록 둔다고 가정한다. 게임의 결과는 Alice의 점수에서 Bob의 점수를 뺀 값이다.
주어진 수열에 대해 시작 크기만 다른 개의 게임을 처리하는 프로그램 game을 작성하라.
입력
표준 입력의 첫 줄에는 두 양의 정수 과 가 공백으로 구분되어 주어진다.
둘째 줄에는 수열을 나타내는 개의 양의 정수 이 공백으로 구분되어 주어진다.
셋째 줄에는 개의 양의 정수 가 공백으로 구분되어 주어진다. 번째 게임은 수열의 앞 개 원소로 만든 에서 시작한다. 여기서 이다.
출력
표준 출력에 줄을 출력한다. 번째 줄에는 번째 게임의 결과를 나타내는 정수 하나를 출력한다. 게임 번호는 입력에 주어진 순서대로 부터 까지 매긴다.
제한
- 모든 에 대해
- 모든 에 대해
- 테스트의 에서는
- 테스트의 에서는
- 테스트의 에서는 ,
힌트
각 게임은 정확히 번 움직이며 끝난다. Alice는 홀수 번째 차례에, Bob은 짝수 번째 차례에 수를 가져간다. 들어올 수가 남아 있는 동안에는 매 차례가 끝난 뒤 새 수 하나가 에 들어오므로, 그 구간에서는 차례를 시작할 때 가 항상 개의 원소를 가진다. 들어올 수가 떨어진 뒤에는 남은 를 순서대로 꺼내며 끝낸다.