Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Numerics;
- using System.Collections.Generic;
- using System.Linq;
- namespace KaminoFactory_Exercises_JuneJuly18
- {
- class Program
- {
- static void Main()
- {
- int dnaLength = int.Parse(Console.ReadLine());
- Print(dnaLength);
- }
- static void Print(int dnaLength)
- {
- int[] arrOfNums = new int[dnaLength];
- //string[] arrOfInput = new string[dnaLength];
- int[] copyOfOriginal = new int[arrOfNums.Length];
- int maxLength = 0;
- int arrayCount = 0;
- int arrayNumber = 0;
- int leftmostIndex = 0;
- while (true)
- {
- var input = Console.ReadLine();
- if(input == "Clone them!")
- {
- break;
- }
- arrOfNums = input.Split('!', StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToArray();
- arrayCount++;
- int subLength = 1;
- int index = 0;
- for (int a = 0; a < arrOfNums.Length; a++)
- {
- int current = arrOfNums[a];
- if (current == 1)
- {
- index = a;
- for(int b = index + 1; b < arrOfNums.Length; b++)
- {
- int next = arrOfNums[b];
- if (next == 1)
- {
- subLength++;
- }
- else
- {
- break;
- }
- }
- }
- else
- {
- continue;
- }
- if (subLength > maxLength)
- {
- leftmostIndex = index;
- maxLength = subLength;
- Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
- arrayNumber = arrayCount;
- }
- else if(subLength == maxLength)
- {
- if (index < leftmostIndex)
- {
- leftmostIndex = index;
- Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
- arrayNumber = arrayCount;
- }
- else if(index == leftmostIndex)
- {
- if(copyOfOriginal.Sum() > arrOfNums.Sum())
- {
- Array.Copy(copyOfOriginal, copyOfOriginal, dnaLength);
- }
- else
- {
- Array.Copy(arrOfNums, copyOfOriginal, dnaLength);
- arrayNumber = arrayCount;
- }
- }
- }
- //subLength = 1;
- }
- }
- Console.WriteLine("Best DNA sample {0} with sum: {1}.", arrayNumber, copyOfOriginal.Sum());
- Console.Write(string.Join(" ", copyOfOriginal));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement