using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
public static void Main()
{
var list1 = new List<int>() { 1, 2, 3, 4 };
var list2 = new List<int>() { 2, 3, 5, 6, 7, 8 };
var list3 = new List<int>() { 3, 4, 5 };
var all = new List<List<int>>() { list1, list2, list3 };
int min = all.Min(l => l.Min());
var max = all.Max(l => l.Max());
int count = max - min + 1;
List<int?> l1Result = new List<int?>(count);
List<int?> l2Result = new List<int?>(count);
List<int?> l3Result = new List<int?>(count);
foreach (int val in Enumerable.Range(min, count))
{
if (list1.BinarySearch(val) >= 0)
l1Result.Add(val);
else
l1Result.Add(new Nullable<int>());
if (list2.BinarySearch(val) >= 0)
l2Result.Add(val);
else
l2Result.Add(new Nullable<int>());
if (list3.BinarySearch(val) >= 0)
l3Result.Add(val);
else
l3Result.Add(new Nullable<int>());
}
Console.WriteLine(string.Join(",", l1Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
Console.WriteLine(string.Join(",", l2Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
Console.WriteLine(string.Join(",", l3Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgIHZhciBsaXN0MSA9IG5ldyBMaXN0PGludD4oKSB7IDEsIDIsIDMsIDQgfTsKICAgICAgICB2YXIgbGlzdDIgPSBuZXcgTGlzdDxpbnQ+KCkgeyAyLCAzLCA1LCA2LCA3LCA4IH07CiAgICAgICAgdmFyIGxpc3QzID0gbmV3IExpc3Q8aW50PigpIHsgMywgNCwgNSB9OwogICAgICAgIHZhciBhbGwgPSBuZXcgTGlzdDxMaXN0PGludD4+KCkgeyBsaXN0MSwgbGlzdDIsIGxpc3QzIH07CgogICAgICAgIGludCBtaW4gPSBhbGwuTWluKGwgPT4gbC5NaW4oKSk7CiAgICAgICAgdmFyIG1heCA9IGFsbC5NYXgobCA9PiBsLk1heCgpKTsKICAgICAgICBpbnQgY291bnQgPSBtYXggLSBtaW4gKyAxOwogICAgICAgIAogICAgICAgIExpc3Q8aW50Pz4gbDFSZXN1bHQgPSBuZXcgTGlzdDxpbnQ/Pihjb3VudCk7CiAgICAgICAgTGlzdDxpbnQ/PiBsMlJlc3VsdCA9IG5ldyBMaXN0PGludD8+KGNvdW50KTsKICAgICAgICBMaXN0PGludD8+IGwzUmVzdWx0ID0gbmV3IExpc3Q8aW50Pz4oY291bnQpOwogICAgICAgIAogICAgICAgIGZvcmVhY2ggKGludCB2YWwgaW4gRW51bWVyYWJsZS5SYW5nZShtaW4sIGNvdW50KSkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChsaXN0MS5CaW5hcnlTZWFyY2godmFsKSA+PSAwKQogICAgICAgICAgICAgICAgbDFSZXN1bHQuQWRkKHZhbCk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGwxUmVzdWx0LkFkZChuZXcgTnVsbGFibGU8aW50PigpKTsKICAgICAgICAKICAgICAgICAgICAgaWYgKGxpc3QyLkJpbmFyeVNlYXJjaCh2YWwpID49IDApCiAgICAgICAgICAgICAgICBsMlJlc3VsdC5BZGQodmFsKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbDJSZXN1bHQuQWRkKG5ldyBOdWxsYWJsZTxpbnQ+KCkpOwogICAgICAgIAogICAgICAgICAgICBpZiAobGlzdDMuQmluYXJ5U2VhcmNoKHZhbCkgPj0gMCkKICAgICAgICAgICAgICAgIGwzUmVzdWx0LkFkZCh2YWwpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBsM1Jlc3VsdC5BZGQobmV3IE51bGxhYmxlPGludD4oKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCIsIiwgbDFSZXN1bHQuU2VsZWN0KGkgPT4gIWkuSGFzVmFsdWUgPyAiTlVMTCIgOiBpLlZhbHVlLlRvU3RyaW5nKCkpLlRvQXJyYXkoKSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCIsIiwgbDJSZXN1bHQuU2VsZWN0KGkgPT4gIWkuSGFzVmFsdWUgPyAiTlVMTCIgOiBpLlZhbHVlLlRvU3RyaW5nKCkpLlRvQXJyYXkoKSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCIsIiwgbDNSZXN1bHQuU2VsZWN0KGkgPT4gIWkuSGFzVmFsdWUgPyAiTlVMTCIgOiBpLlZhbHVlLlRvU3RyaW5nKCkpLlRvQXJyYXkoKSkpOwoJfQp9
1,2,3,4,NULL,NULL,NULL,NULL
NULL,2,3,NULL,5,6,7,8
NULL,NULL,3,4,5,NULL,NULL,NULL