Advertisement
elena1234

KaminoFactory

Sep 14th, 2020 (edited)
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.18 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace KaminoFactory
  5. {
  6.     class MainClass
  7.     {
  8.         public static void Main(string[] args)
  9.         {
  10.             int n = int.Parse(Console.ReadLine());
  11.             string input = Console.ReadLine();
  12.             int bestLengthDNA = 0;
  13.             int bestENDIndex = 0;
  14.             int bestDNASum = 0;
  15.             int currentDNACounter = 0;
  16.             int bestDNACounter = 0;
  17.             int[] bestDNA = new int [n];
  18.  
  19.             while (input != "Clone them!")
  20.             {
  21.                 int currentLengthOfOne = 1;
  22.                 int bestCurrentLengthOfOne = 0;
  23.                 int currentENDIndex = 0;
  24.                 int currentSum = 0;
  25.                 int[] currentDNA = input.Split("!",StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
  26.                 currentDNACounter++;
  27.  
  28.                 for (int i = 0; i < currentDNA.Length - 1; i++)
  29.                 {
  30.  
  31.                     if (currentDNA[i] == currentDNA[i + 1])
  32.                     {
  33.                         currentLengthOfOne++;
  34.                     }
  35.  
  36.                     else if (currentDNA[i] != currentDNA[i + 1])
  37.                     {
  38.  
  39.                         currentLengthOfOne = 1;
  40.                     }
  41.  
  42.                     if (currentLengthOfOne > bestCurrentLengthOfOne)
  43.                     {
  44.                         bestCurrentLengthOfOne = currentLengthOfOne;
  45.                         currentENDIndex = i;
  46.                     }              
  47.                 }
  48.  
  49.                 currentSum = currentDNA.Sum();
  50.                
  51.  
  52.                 if (bestCurrentLengthOfOne > bestLengthDNA)
  53.                 {
  54.                     bestDNA = currentDNA.ToArray();
  55.                     bestLengthDNA = bestCurrentLengthOfOne;
  56.                     bestENDIndex = currentENDIndex;
  57.                     bestDNASum = currentSum;
  58.                     bestDNACounter = currentDNACounter;
  59.                 }
  60.  
  61.                 else if (bestCurrentLengthOfOne == bestLengthDNA)
  62.                 {
  63.                     if (currentENDIndex < bestENDIndex)
  64.                     {
  65.                         bestDNA = currentDNA.ToArray();
  66.                         bestLengthDNA = bestCurrentLengthOfOne;
  67.                         bestENDIndex = currentENDIndex;
  68.                         bestDNASum = currentSum;
  69.                         bestDNACounter = currentDNACounter;
  70.                     }
  71.  
  72.                     else if (currentENDIndex == bestENDIndex)
  73.                     {
  74.                         if (currentSum > bestDNASum)
  75.                         {
  76.                             bestDNA = currentDNA.ToArray();
  77.                             bestLengthDNA = bestCurrentLengthOfOne;
  78.                             bestENDIndex = currentENDIndex;
  79.                             bestDNASum = currentSum;
  80.                             bestDNACounter = currentDNACounter;
  81.                         }
  82.                     }
  83.                 }
  84.  
  85.                 input = Console.ReadLine();
  86.             }
  87.  
  88.                 Console.WriteLine($"Best DNA sample {bestDNACounter} with sum: {bestDNASum}.");
  89.                 Console.WriteLine(string.Join(" ",bestDNA));
  90.         }
  91.     }
  92. }
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement