using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var nums = new int[] { 1, 2, 3, 4, 3, 2, 1 };
int target = 4;
var pairs = FindPairs(nums, target);
foreach (var pair in pairs)
{
Console.WriteLine($"{pair.Item1}, {pair.Item2}");
}
}
static List> FindPairs(int[] nums, int target)
{
var seen = new HashSet();
var pairs = new List>();
foreach (var num in nums)
{
int complement = target - num;
if (seen.Contains(complement))
{
pairs.Add(new Tuple(complement, num));
}
seen.Add(num);
}
return pairs;
}
}