Advertisement
AdelinaMladenova

KaminoFactory

Jun 23rd, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.20 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. namespace _9.KaminoFactory
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int longDna = int.Parse(Console.ReadLine());
  10.             string commond = Console.ReadLine();
  11.  
  12.             int[] bestDnk = new int[longDna];
  13.             int bestSumDnk = 0;
  14.             int bestLenghtOne = 1;
  15.             int bestFirstIndexOne = 0;
  16.             int bestRow = 0;
  17.             int currentRow = 0;
  18.  
  19.             while (commond != "Clone them!")
  20.             {
  21.                 currentRow++;
  22.                 int[] currentDnk = commond
  23.                     .Split("!", StringSplitOptions.RemoveEmptyEntries)
  24.                     .Select(int.Parse)
  25.                     .ToArray();
  26.  
  27.                 int currentSumDnk = currentDnk.Sum();
  28.  
  29.                 int bestCurrentLengthOne = 1;
  30.                 int currentFirstIndexOne = 0;
  31.  
  32.                 for (int i = 0; i < currentDnk.Length; i++)
  33.                 {
  34.                     int currentLenghOne = 1;
  35.  
  36.                     for (int j = i + 1; j < currentDnk.Length; j++)
  37.                     {
  38.                         if (currentDnk[i] == currentDnk[j] && currentDnk[j] == 1)
  39.                         {
  40.                             currentLenghOne++;
  41.                         }
  42.                         else
  43.                         {
  44.                             break;
  45.                         }
  46.                     }
  47.                     if (currentLenghOne > bestCurrentLengthOne)
  48.                     {
  49.                         bestCurrentLengthOne = currentLenghOne;
  50.                         currentFirstIndexOne = i;
  51.                     }
  52.                 }
  53.  
  54.                 if (bestCurrentLengthOne > bestLenghtOne)
  55.                 {
  56.                     bestRow = currentRow;
  57.                     bestSumDnk = currentSumDnk;
  58.                     bestDnk = currentDnk;
  59.                 }
  60.                 else if (bestCurrentLengthOne == bestLenghtOne)
  61.                 {
  62.                     if (currentFirstIndexOne < bestFirstIndexOne)
  63.                     {
  64.                         bestRow = currentRow;
  65.                         bestSumDnk = currentSumDnk;
  66.                         bestDnk = currentDnk;
  67.                     }
  68.                     else if (currentFirstIndexOne > bestFirstIndexOne)
  69.                     {
  70.                         break;
  71.                     }
  72.                     else if (currentFirstIndexOne == bestFirstIndexOne)
  73.                     {
  74.                         if (currentSumDnk >= bestSumDnk)
  75.                         {
  76.                             bestRow = currentRow;
  77.                             bestSumDnk = currentSumDnk;
  78.                             bestDnk = currentDnk;
  79.                         }
  80.                         else
  81.                         {
  82.                             break;
  83.                         }
  84.                     }
  85.                 }
  86.                 else
  87.                 {
  88.                     break;
  89.                 }
  90.  
  91.                 commond = Console.ReadLine();
  92.             }
  93.             Console.WriteLine($"Best DNA sample {bestRow} with sum: {bestSumDnk}.");
  94.             Console.WriteLine(string.Join(" ", bestDnk));
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement