삼각형 게임
시간 제한2초메모리 제한2048 MB
y=0과 y=2 위의 점들로 서로 겹치지 않는 삼각형 k개를 만들어 넓이 합의 최댓값을 k마다 구하는 문제입니다.
문제
Little John은 집을 사려면 돈이 필요하다. 그런데 최근에 일자리를 잃었다. 그러면 이제 어떻게 돈을 벌까? 당연히 보상으로 돈을 주는 게임을 하면 된다. 다만 아마 여러분이 떠올린 그런 게임은 아닐 것이다.
평면 위에 서로 다른 개의 점 가 있다. 처음 점수는 이다. 점수를 얻으려면 다음 연산을 수행할 수 있다.
- 일직선 위에 있지 않은 서로 다른 세 점을 고른다.
- 세 점이 이루는 삼각형의 넓이만큼 점수를 얻는다.
- 세 점을 평면에서 지운다.

연산을 두 번 수행한 게임의 예시이다.
수행할 수 있는 연산의 최대 횟수를 라고 하자. 예를 들어 어떤 연산도 할 수 없으면 는 이다. 는 연산을 정확히 번 수행해서 얻을 수 있는 최대 점수로 정의한다. 는 인 모든 정수 에 대해 정의된다.
의 값을 구하고, 인 각 정수 에 대해 의 값을 구하라.
입력
각 입력에는 여러 개의 테스트 케이스가 들어 있다. 첫 줄에는 테스트 케이스의 개수 ()가 주어진다. 테스트 케이스가 이어진다.
각 테스트 케이스의 첫 줄에는 정수 과 ()이 주어진다.
둘째 줄에는 위의 점인 서로 다른 정수 개 ()이 주어진다.
셋째 줄에는 위의 점인 서로 다른 정수 개 ()이 주어진다.
모든 테스트 케이스에서 의 합과 의 합은 각각 를 넘지 않는다.
출력
각 테스트 케이스마다 최대 두 줄을 출력한다.
첫 줄에는 의 값을 출력한다.
둘째 줄에는 개의 정수 를 출력한다. 가 이면 이 줄은 생략해도 된다.
이 문제의 제약에서 모든 값은 이하의 정수임이 보장된다.
힌트
첫 번째 테스트 케이스에는 개의 점 가 있다. 연산을 두 번 이상 수행할 수 없음을 보일 수 있다. 따라서 는 이고, 구해야 하는 값은 뿐이다.
세 꼭짓점으로 , , 를 고를 수 있다. 이 삼각형의 넓이는 이므로 점수가 오르고 세 점이 지워진다. 연산을 한 번 했을 때 얻을 수 있는 최대 점수는 임을 보일 수 있다. 따라서 이다.
다섯 번째 테스트 케이스에는 개의 점이 있다. 연산을 세 번 이상 수행할 수 없음을 보일 수 있다. 따라서 는 이고, 구해야 하는 값은 과 이다.
연산을 한 번 해서 점수를 최대로 만들려면 , , 를 고른다. 점수는 이 되므로 이다.
연산을 정확히 두 번 해서 점수를 최대로 만들려면 먼저 , , 를 고른다. 그다음 , , 를 고른다. 점수는 이 되므로 이다.