using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _6.Stuck_Zipper { class Program { static void Main(string[] args) { List firstList = Console.ReadLine() .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse) .ToList(); List secondList = Console.ReadLine() .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse) .ToList(); // var minNumberInList = FindMinDigits(firstList, secondList); var result = ListUnited(firstList, secondList); Console.WriteLine(string.Join(" ", result)); } private static List ListUnited (List list1, List list2) { var firstListResult = new List(); var secondListResult = new List(); var resultList = new List(); foreach (var number in list1) // adding smallest nums in new list { var stringNumber = Math.Abs(number).ToString(); if (stringNumber.Length == FindMinDigits(list1, list2)) { firstListResult.Add(number); } } foreach (var number in list2) // adding smallest nums in new list { var stringNumber = Math.Abs(number).ToString(); if (stringNumber.Length == FindMinDigits(list1, list2)) { secondListResult.Add(number); } } var totalLength = firstListResult.Count + secondListResult.Count; for (int cnt = 0; cnt < totalLength; cnt++) { var firstListNumber = 0; var secondListNumber = 0; if (secondListResult.Count > cnt) { secondListNumber = secondListResult[cnt]; resultList.Add(secondListNumber); } if (firstListResult.Count > cnt) { firstListNumber = firstListResult[cnt]; resultList.Add(firstListNumber); } } return resultList; } private static int FindMinDigits (List list1, List list2) { var maxDigits = int.MaxValue; foreach (var number in list1) { var stringLength = Math.Abs(number).ToString(); //Search for biggest digits in list1 if (stringLength.Length < maxDigits) { maxDigits = stringLength.Length; } } foreach (var number in list2) { var stringLength = Math.Abs(number).ToString(); //Search for biggest digits in list2 if (stringLength.Length < maxDigits) { maxDigits = stringLength.Length; } } return maxDigits; } } }