CSES - Shared codeLink to this code:
https://cses.fi/paste/764a138ddfa322b81b912c/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll n ; ll x;
cin >> n >> x;
vector<ll> v(n, 0);
for (auto &r : v) cin >> r;
unordered_map<ll, ll> m;
for (auto i : v) {
m[i]++;
}
ll valid = 0;
vector<ll> s , g(n, -1);
for (ll i = 0; i < n - 2; i++) {
ll sum = x - v[i];
for (int r = i + 1; r < n - 1; r++) {
ll f = sum - v[r];
if (m[f] >= 1) {
m[f]--;
if (m[v[i]] >= 1) {
m[v[i]]--;
if (m[v[r]] >= 1)
{
cout << i + 1 << " " << r + 1 << " ";
for (ll j = 0; j < n; j++) {
if (j != i && j != r && v[j] == f) {
cout << j + 1;
return 0;
}
}
}
m[v[i]]++;
}
m[f]++;
}
}
}
// if (valid == 0)
cout << "IMPOSSIBLE";
}