
감자튀김을 반씩 나누어 가져가는 것이다.
그중 절반은 큰 것부터, 나머지는 작은 것부터 가져가는 것이다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N, sum, otherSum;
vector<int> a;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> N;
a = vector<int>(N);
for (int &i : a)
{
cin >> i;
sum += i;
}
sort(a.begin(), a.end());
for (int i = 0; i < a.size() / 2; ++i)
{
otherSum += a[i];
}
cout << otherSum << " " << sum - otherSum;
return 0;
}
결국 처음 나타난 수의 순서와 상관없이 현재 남은 수 중 가장 큰 값과 가장 작은 값을 가져가기에 정렬된 값을 반으로 나누어서 가져간다고 생각하면 된다.