3의 열차
시간 제한5초메모리 제한256 MB
1, 2와 3에 2의 거듭제곱을 곱한 수로 이루어진 배열에서 규칙에 따라 이웃한 짝을 합쳐 만들 수 있는 가장 큰 수를 구합니다.
문제
Threes!는 iOS와 Android 등에서 즐길 수 있는 퍼즐 게임이다. 규칙은 단순하지만 그 안의 구조는 깊다. 이웃한 수를 맞춰 합치는 일을 반복해서 더 큰 수를 만들어 나간다. 여기서는 이 게임을 단순하게 바꾼 버전을 다룬다.
게임은 수 개로 이루어진 배열에서 시작한다. 각 수는 이거나 이거나, 인 정수 에 대해 꼴이다.
이웃한 두 수가 서로 맞으면 하나로 합쳐서 더 큰 수를 만들 수 있다. 이웃한 과 는 합쳐서 하나가 된다. 이웃한 두 개는 하나가 되고, 이웃한 두 개는 하나가 되며, 일반적으로 이상인 같은 수 두 개가 이웃해 있으면 두 수의 합 하나로 합칠 수 있다. 과 는 특별하다. 은 하고만 맞고, 는 하고만 맞는다.
게임의 목표는 만들 수 있는 가장 큰 수를 만드는 것이다. 이웃한 두 수를 더 이상 합칠 수 없게 되면 게임이 끝난다. 예를 들어 배열 에서 시작하면 만들 수 있는 가장 큰 수는 이다.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다 (). 이어서 개의 줄이 주어진다. 각 테스트 케이스의 첫 줄에는 배열의 크기 이 주어진다 (). 그다음 줄에는 정수 개가 주어지며, 각 정수는 , , 또는 인 정수 에 대해 꼴이다.
출력
테스트 케이스 개 각각에 대해 만들 수 있는 가장 큰 수를 한 줄에 출력한다.