Advertisement
Radost09

Kamino_Factory

Jan 22nd, 2022
1,372
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace P09_Kamino_Factory
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int length = int.Parse(Console.ReadLine());
  11.             int longestSubsequence = -1;
  12.             int longestSubIndex = -1;
  13.             int longestSubsum = -1;
  14.             int indexOfLongest = 0;
  15.             int[] sequence = new int[length];
  16.  
  17.             string input = Console.ReadLine();
  18.             int indexOfSequence = 1;
  19.  
  20.             while(input != "Clone them!")
  21.             {
  22.                 int[] curentSeq = input.Split('!', StringSplitOptions.RemoveEmptyEntries)
  23.                     .Select(int.Parse)
  24.                     .ToArray();
  25.                 int subsequence = 0;
  26.                 int subIndex = -1;
  27.                 int subSum = 0;
  28.                 int count = 0;
  29.                 for (int i = 0; i < length; i++)
  30.                 {
  31.                     if(curentSeq[i] == 1)
  32.                     {
  33.                         count++;
  34.                         subSum++;
  35.                         if (count > subsequence)
  36.                         {
  37.                             subsequence = count;
  38.                             subIndex = i - count;
  39.                         }
  40.                     }
  41.                     else
  42.                     {
  43.                         count = 0;
  44.                     }
  45.                 }
  46.  
  47.                 if(subsequence > longestSubsequence)
  48.                 {
  49.                     longestSubIndex = subIndex;
  50.                     longestSubsequence = subsequence;
  51.                     longestSubsum = subSum;
  52.                     sequence = curentSeq;
  53.                     indexOfLongest = indexOfSequence;
  54.                 }
  55.                 else if(subsequence == longestSubsequence && longestSubIndex > subIndex)
  56.                 {
  57.                     longestSubIndex = subIndex;
  58.                     longestSubsum = subSum;
  59.                     sequence = curentSeq;
  60.                     indexOfLongest = indexOfSequence;
  61.                 }
  62.                 else if(subsequence == longestSubsequence
  63.                     && longestSubIndex == subIndex
  64.                     && longestSubsum < subSum)
  65.                 {
  66.                     longestSubsum = subSum;
  67.                     sequence = curentSeq;
  68.                     indexOfLongest = indexOfSequence;
  69.                 }
  70.                 indexOfSequence++;
  71.                 input = Console.ReadLine();
  72.             }
  73.             Console.WriteLine($"Best DNA sample {indexOfLongest} with sum: {longestSubsum}.");
  74.             Console.WriteLine(String.Join(" ", sequence));
  75.         }
  76.     }
  77. }
  78.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement