햄부기
시간 제한1.5초메모리 제한1024 MB
현재 화난 피돌이들 중 인접한 두 명씩 골라 두 값의 최솟값만큼 햄부기를 주면서, 남는 화난 정도의 합을 최소로 만드는 방법을 출력한다.
문제
피돌이들이 화가 나 있다! 피돌이들은 총 명 있으며 1번부터 번까지의 번호가 붙어있다. 번 피돌이가 화난 정도는 정수 로 나타낼 수 있다. 이는 번 피돌이가 햄부기 개 만큼 화났음을 의미하며 이는 햄부기를 1개 받을 때마다 1씩 줄어든다. 이라면 번 피돌이가 화나 있지 않음을 나타낸다.
당신은 피돌이들에게 햄부기를 뿌려 피돌이들을 진정시키려고 한다. 하지만 햄부기를 그냥 뿌리는 것은 재미없다고 생각한 당신은 다음과 같은 방식을 사용하기로 했다.
- 현재 상태에서 화가 나 있는 피돌이들의 수를 , 화가 나 있는 피돌이 중 번호가 번째로 작은 피돌이의 번호를 라고 하자. 인 정수 를 골라 번 피돌이와 번 피돌이에게 햄부기를 개 만큼 준다.
당신은 위의 방법대로 햄부기를 뿌려 피돌이들이 화난 정도의 합 를 최소화 하고싶다. 의 최솟값과 가 최솟값이 되게하는 방법을 하나 찾아보자. 단, 햄부기는 무한히 있다고 가정한다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫째 줄에 피돌이들의 수 이 주어진다.
각 테스트 케이스의 둘째 줄에 각 피돌이들이 초기에 화난 정도를 나타내는 개의 정수 이 공백을 두고 주어진다.
모든 테스트 케이스에서 의 합은 을 넘지 않는다.
출력
각 테스트 케이스의 첫째 줄에 의 최솟값과 햄부기를 주는 횟수 를 공백을 두고 출력한다.
각 테스트 케이스의 둘째 줄에 몇 번째 피돌이에게 햄부기를 줘야 하는지 나타내는 개의 정수 를 공백을 두고 출력한다. 는 번째로 햄부기를 줄 때 번째 피돌이와 번째 피돌이에게 줬음을 나타낸다.