Guest User

_06.Stuck_Zipper

a guest
Jul 24th, 2017
95
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _06.Stuck_Zipper
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             List<int> first = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
  14.             List<int> second = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
  15.             List<int> resultList = new List<int>();
  16.  
  17.             //find min length number from the two lists
  18.             int minDigits = Math.Min(MinLength(first), MinLength(second));
  19.  
  20.             //remove items bigger than min digits
  21.             first = RemoveBiggerThanMinSize(first, minDigits);
  22.             second = RemoveBiggerThanMinSize(second, minDigits);
  23.  
  24.             //merge the two lists
  25.             resultList = MergeLists(first, second);
  26.  
  27.             //print results list
  28.             Console.WriteLine(string.Join(" ", resultList));
  29.         }
  30.  
  31.         static int MinLength(List<int> list)
  32.         {
  33.             int minLength = int.MaxValue;
  34.             for (int i = 0; i < list.Count; i++)
  35.             {
  36.                 if (minLength > FindLength(list[i]))
  37.                 {
  38.                     minLength = FindLength(list[i]);
  39.                 }
  40.             }
  41.             return minLength;
  42.         }
  43.  
  44.         static int FindLength(int number)
  45.         {
  46.             string numberLen = Math.Abs(number).ToString();
  47.             return numberLen.Length;
  48.         }
  49.  
  50.         static List<int> RemoveBiggerThanMinSize(List<int> list, int minDigits)
  51.         {
  52.             for (int i = 0; i < list.Count; i++)
  53.             {
  54.                 if (FindLength(list[i]) > minDigits)
  55.                 {
  56.                     list.RemoveAt(i);
  57.                     i--;
  58.                 }
  59.             }
  60.             return list;
  61.         }
  62.  
  63.         static List<int> MergeLists(List<int> list1, List<int> list2)
  64.         {
  65.             List<int> results = new List<int>();
  66.             int MaxCount = Math.Max(list1.Count, list2.Count);
  67.  
  68.             for (int i = 0; i < MaxCount; i++)
  69.             {
  70.                 if (i < list2.Count)
  71.                 {
  72.                     results.Add(list2[i]);
  73.                 }
  74.                 if (i < list1.Count)
  75.                 {
  76.                     results.Add(list1[i]);
  77.                 }
  78.             }
  79.             return results;
  80.         }
  81.     }
  82. }
RAW Paste Data