Getting TLE
int main() {
int n,i,x,k=0,target;
cin>>n;
set<int>s;
//saving in set so I have unique nos.
for(i=0;i<n;i++){
cin>>x;
s.insert(x);
}
//taking back to array
int a[s.size()];
for(auto itr=s.begin();itr!=s.end();itr++){
a[k++]=*itr;
}
cin>>target;
sort(a,a+s.size());
// 2 pointer method
for(i=0;i<s.size();i++){
int l=i+1;
int r=n-1;
while(l<r){
if(a[i]+a[l]+a[r]>target){
r–;
}
else if(a[i]+a[l]+a[r]==target){
cout<<a[i]<<", “<<a[l]<<” and "<<a[r]<<endl;
l++;r–;
}
}
}
return 0;
}