agario4

what

Oct 22nd, 2021
842
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace _09._Kamino_Factory {
  4.     class Program {
  5.         static void Main(string[] args) {
  6.             int dnaLength = int.Parse(Console.ReadLine());
  7.  
  8.             #region BEST
  9.  
  10.             string[] bestDnaSequence = new string[dnaLength];
  11.             int bestIndexOfMaxOnes = 0;
  12.             int bestMaxOnes = 0;
  13.             int bestOnesSum = 0;
  14.             int bestIndex = 0;
  15.  
  16.             #endregion
  17.  
  18.             string command = Console.ReadLine();
  19.             int currIndex = 0;
  20.  
  21.             while (command != "Clone them!") {
  22.                 currIndex++;
  23.  
  24.                 #region CURRENT
  25.  
  26.                 // ReSharper disable once PossibleNullReferenceException
  27.                 string[] currDnaSequence = command.Split("!");
  28.                 int currIndexOfMaxOnes = 0;
  29.                 int currMaxOnes = 0;
  30.                 int currOnesSum = 0;
  31.  
  32.                 #endregion
  33.  
  34.                 int currOnes = 0;
  35.  
  36.                 for (int i = 0; i < currDnaSequence.Length; i++) {
  37.                     if (currDnaSequence[i] == "1") {
  38.                         currOnes++;
  39.                         currOnesSum++;
  40.                     } else {
  41.                         currOnes = 0;
  42.                     }
  43.  
  44.                     if (currOnes > currMaxOnes) {
  45.                         currMaxOnes = currOnes;
  46.                         currIndexOfMaxOnes = i - currOnes + 1;
  47.                     }
  48.                 }
  49.  
  50.                 // i bet this can be optimized so much more
  51.                 if (currMaxOnes > bestMaxOnes) {
  52.                     bestMaxOnes = currMaxOnes;
  53.                     bestIndexOfMaxOnes = currIndexOfMaxOnes;
  54.                     bestOnesSum = currOnesSum;
  55.                     bestIndex = currIndex;
  56.                     bestDnaSequence = currDnaSequence;
  57.                 } else if (currMaxOnes == bestMaxOnes) {
  58.                     if (currIndexOfMaxOnes < bestIndexOfMaxOnes) {
  59.                         bestMaxOnes = currMaxOnes;
  60.                         bestIndexOfMaxOnes = currIndexOfMaxOnes;
  61.                         bestOnesSum = currOnesSum;
  62.                         bestIndex = currIndex;
  63.                         bestDnaSequence = currDnaSequence;
  64.                     } else if (currIndexOfMaxOnes == bestIndexOfMaxOnes) {
  65.                         if (currOnesSum > bestOnesSum) {
  66.                             bestMaxOnes = currMaxOnes;
  67.                             bestIndexOfMaxOnes = currIndexOfMaxOnes;
  68.                             bestOnesSum = currOnesSum;
  69.                             bestIndex = currIndex;
  70.                             bestDnaSequence = currDnaSequence;
  71.                         }
  72.                     }
  73.                 }
  74.  
  75.                 command = Console.ReadLine();
  76.             }
  77.  
  78.             Console.WriteLine($"Best DNA sample {bestIndex} with sum: {bestOnesSum}.");
  79.             Console.WriteLine(string.Join(" ", bestDnaSequence));
  80.         }
  81.     }
  82. }
RAW Paste Data