CSES - Shared codeLink to this code:
https://cses.fi/paste/72ac98c9abef09f58f92de/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vi vector<ll>
#define pi pair<ll,ll>
#define pb push_back
int main(){
ios::sync_with_stdio(false);cin.tie(nullptr);
ll n,k; cin>>n>>k;
vector<pi> v(n);
for(int i=0;i<n;i++){
cin>>v[i].first;
v[i].second=i+1;
}
sort(v.begin(),v.end());
int i=0,j=n-1;
ll currsum=0;
bool flag=0;
while(i<j){
int l=i+1,r=j-1;
currsum=0;
while(l<r){
currsum=v[i].first+v[j].first+v[l].first+v[r].first;
if(currsum==k){
std::cout<<v[i].second<<" "<<v[j].second<<" "<<v[l].second<<" "<<v[r].second;
flag=1;
return 0;
}
else if(currsum<k){
l++;
}
else{
r--;
}
}
if(currsum<k){
i++;
}
else{
j--;
}
}
if(flag==0)
std::cout<<"IMPOSSIBLE";
return 0;
}