
문제출처 : https://www.acmicpc.net/problem/20117
code
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	int N, i, avg=0;
	int hoban[100000] = {};
	cin >> N;
	for (i = 0; i < N; i++)
		cin >> hoban[i];
	sort(hoban, hoban + N);
	if (N % 2)
	{
		for (i = 0; i < N/2; i++)
			avg += hoban[N - 1 - i] * 2;
		avg += hoban[i];
	}
	else
	{
		for (i = 0; i < N / 2; i++)
			avg += hoban[N - 1 - i] * 2;
	}
	cout << avg;
	return 0;
}
문제에서 통째로도 팔수있지만 묶음으로도 판매할 수 있다고 했으니, 최대 가격을 얻을 수 있는 묶음은 가격낮은 소+가격높은 소 순으로 2마리씩 묶어준다.
이러면 항상 가격이 높은 소의 가격으로 판매할 수 있기때문이다.