NelIfandieva

KaminoFactory_Exam_March4_2018

Jul 9th, 2018
116
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Numerics;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace KaminoFactory_Exercises_JuneJuly18
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             int dnaLength = int.Parse(Console.ReadLine());
  12.             Print(dnaLength);
  13.            
  14.         }
  15.         static void Print(int dnaLength)
  16.         {
  17.             int[] arrOfNums = new int[dnaLength];
  18.             //string[] arrOfInput = new string[dnaLength];
  19.             int[] copyOfOriginal = new int[arrOfNums.Length];
  20.             int maxLength = 0;
  21.             int arrayCount = 0;
  22.             int arrayNumber = 0;
  23.             int leftmostIndex = 0;
  24.            
  25.             while (true)
  26.             {
  27.                 var input = Console.ReadLine();
  28.                
  29.                 if(input == "Clone them!")
  30.                 {
  31.                     break;
  32.                 }
  33.                 arrOfNums = input.Split('!', StringSplitOptions.RemoveEmptyEntries)
  34.                     .Select(int.Parse)
  35.                     .ToArray();
  36.  
  37.                 arrayCount++;
  38.                 int subLength = 1;
  39.                 int index = 0;
  40.                
  41.                 for (int a = 0; a < arrOfNums.Length; a++)
  42.                 {
  43.                     int current = arrOfNums[a];
  44.                     if (current == 1)
  45.                     {
  46.                         index = a;
  47.                        
  48.                         for(int b = index + 1; b < arrOfNums.Length; b++)
  49.                         {
  50.                             int next = arrOfNums[b];
  51.                             if (next == 1)
  52.                             {
  53.                                 subLength++;
  54.                             }
  55.                             else
  56.                             {
  57.                                 break;
  58.                             }
  59.                         }
  60.                     }
  61.                     else
  62.                     {
  63.                         continue;
  64.                     }
  65.  
  66.                     if (subLength > maxLength)
  67.                     {
  68.                         leftmostIndex = index;
  69.                         maxLength = subLength;
  70.                         Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
  71.                         arrayNumber = arrayCount;
  72.  
  73.                     }
  74.                     else if(subLength == maxLength)
  75.                     {
  76.                        
  77.                         if (index < leftmostIndex)
  78.                         {
  79.                             leftmostIndex = index;
  80.                             Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
  81.                             arrayNumber = arrayCount;
  82.                         }
  83.                         else if(index == leftmostIndex)
  84.                         {
  85.                             if(copyOfOriginal.Sum() > arrOfNums.Sum())
  86.                             {
  87.                
  88.                                 Array.Copy(copyOfOriginal, copyOfOriginal, dnaLength);
  89.                             }
  90.                             else
  91.                             {
  92.                                 Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
  93.                                 arrayNumber = arrayCount;
  94.                             }
  95.                         }
  96.                     }
  97.                     //subLength = 1;
  98.                 }
  99.             }
  100.             Console.WriteLine("Best DNA sample {0} with sum: {1}.", arrayNumber, copyOfOriginal.Sum());
  101.             Console.Write(string.Join(" ", copyOfOriginal));
  102.         }
  103.     }
  104. }
RAW Paste Data