코딩테스트/백준

[골3] 2473 - 세 용액

ShovelingLife 2023. 10. 23. 21:16
#include <iostream>
#include <algorithm>
#include <vector>
#include <tuple>

using namespace std;
using ll = long long;

#define FAST_IO() \
{\
	ios::sync_with_stdio(false);\
	cin.tie(NULL); \
	cout.tie(NULL); \
}\

int main()
{
	FAST_IO();

	int n;
	cin >> n;

	vector<ll> v(n);

	for (int i = 0; i < n; i++)
		cin >> v[i];

	sort(v.begin(), v.end());
	ll tmp = ll(30e9);
	tuple<int, int, int> res;

	for (int i = 0; i < n; i++)
	{
		int l = i + 1;
		int r = n - 1;

		while (l < r)
		{
			ll sum = v[i] + v[l] + v[r];

			if (tmp > abs(sum))
			{
				tmp = abs(sum);
				res = { v[i], v[l], v[r] };
			}
			if (sum < 0)
				l++;

			else
				r--;
		}
	}
	ll a, b, c;
	tie(a, b, c) = res;
	cout << a << ' ' << b << ' ' << c;
	return 0;
}