#include
#include<unordered_map>
#include
using namespace std;
void findtriplets(int* ar,int n,int target)
{unordered_map<int,int>mp;
for(int i=0;i<n;i++)
{
mp[ar[i]]++;
}
for(int i=0;i<n-2;i++)
{
for(int j=0;j<n-1;j++)
{
int r=target-(ar[i]+ar[j]);
if(mp.find(r) != mp.end())
{
cout<<ar[i]<<", "<<ar[j]<<" and "<<r<<endl;
}
}
}
}
int main() {
int n,target;
int ar[n];
cin>>n;
for(int i=0;i<n;i++){
cin>>ar[i];
}
cin>>target;
sort(ar, ar+n);
findtriplets(ar,n,target);
}
It is printing all duplicate triplets where target is matched.