흑백 요리사

시간 제한1초메모리 제한1024 MB

문제

성현이는 요리 경연에 출전해 다음과 같은 혹평을 받게 된다.

이 보섭살은 잘못 구워졌어요. 고기가 even 하게 익지 않았어요.

성현이는 다음 시즌의 요리 경연에 또 참여해 이번에는 고기를 even 하게 굽기로 했다. 하지만, even의 뜻을 오해한 성현이는 스테이크를 짝수 번 구우려고 한다. 다시 말해, 각 스테이크의 앞면과 뒷면을 한 번 이상 같은 횟수로 굽기로 했다. 또한, 양면이 같은 시간으로 구워져야 한다.

두께 $x$인 스테이크를 굽기 위해서는 반드시 한 면을 $x$ 분만큼 구운 후 뒤집어야 한다. $x$ 분이 지나지 않았는데 고기를 뒤집을 수는 없으며, $x$ 분이 지났는데도 뒤집지 않을 수는 없다.

성현이는 $0$분에 불판에 $N$개의 스테이크를 모두 올려 동시에 굽기 시작했다. 굽는 도중에 일부 스테이크를 불판에서 제거할 수는 없으며, 굽기를 마칠 때는 $N$개의 스테이크가 even 하게 익은 상태여야 한다.

고기는 너무 오래 구우면 질겨지므로, 성현이는 주어진 조건을 만족하면서 가장 빨리 모든 스테이크를 굽고 싶다. 성현이는 몇 분 동안 스테이크를 구워야 할까?

입력

첫 번째 줄에 스테이크의 개수 $N$이 주어진다. $(1 \leq N \leq 200\,000)$

두 번째 줄에 각 스테이크의 두께인 양의 정수 $x_i$가 공백으로 구분되어 주어진다. $(1 \leq x_i \leq 25)$

출력

성현이가 모든 스테이크를 even 하게 굽기 위해 필요한 최소 시간을 분 단위로 출력한다.

힌트

C/C++의 경우, 32bit 정수형 int의 범위를 넘어가는 정수를 다루게 되므로 64bit 정수형 long long 사용을 권장한다.