/*
* Problem :: 11508 / 2+1 세일
*
* Kind :: Greedy
*
* Insight
* - 최소비용으로 유제품사기
* + 최대한 3개씩 한 번에 사기
* # 무료로 지불하는 제품 가격을 최대화하기
* -> 가장 비싼거 3개 사는 것이
* 무료로 지불하는 제품 가격을 최대화 하는 방법인것 같은데...?
* 이제 남은 유제품들 중에서 가장 비싼거 3개 사고...
* 이렇게 반복하면 되지 않을까?
*
* Point
* - 즉, 내림차순으로 정렬하고
* 앞에서 부터 순서대로 3개씩 묶어서 사면
* 3번째 유제품마다 무료로 살 수 있다
* + sum(C[3], C[6], C[9], ...)
* 순열 : 3, 6, 9, ...
* 개수 : N/3
* # 이는 문제의 규칙을 이용해서 나올 수 있는
* 무료로 살 수 있는 유제품들의 어떤 순열들보다
* 가격의 합이 크거나 같다!
*
* - 모든 유제품들의 가격을 더 한후
* 3번째 유제품의 가격을 빼주자
* + 모든 유제품들의 가격의 합은 2^31-1 보다 클 수 있으니
* long 자료형을 사용하자 :)
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
#include <numeric>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
/* None */
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
int N; cin >> N;
int C[N];
for (int i=0; i<N; i++)
cin >> C[i];
// Process
sort(C, C+N, greater<>()); /* 유제품 가격 내림차순 정렬 */
long ans = accumulate(C, C+N, (long)0); /* 모든 유제품들의 가격의 합 */
for(int i=2; i<N; i+=3) {
ans -= C[i]; /* 3번째 유제품 마다 무료로 살 수 있음 */
}
// Control : Output
cout << ans << endl;
}
// Helper Functions
/* None */