Didart

Kamino Factory

Oct 5th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.70 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Arrays;
  5. import java.util.Scanner;
  6.  
  7. public class KaminoFactory {
  8.     public static void main(String[] args) throws IOException {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  12.  
  13.         int size = Integer.parseInt(reader.readLine());
  14.  
  15.         String input = "";
  16.  
  17.         int bestSequenceIndex = Integer.MAX_VALUE;
  18.         int bestSequenceSum = 0;
  19.         int bestSequenceIndexRow = 0;    
  20.         int bestSequenceIndexRowOutput = 0;
  21.         String sequenceOutput = "";
  22.  
  23.         while (!"Clone them!".equals(input = reader.readLine())) {
  24.             ++bestSequenceIndexRow;
  25.             String[] data = Arrays.stream(input.split("!+"))                          // String[] data = input.split("!+");
  26.                     .filter(e -> !e.equals(""))
  27.                     .toArray(String[]::new);
  28.  
  29.             int[] sequenceDNA = new int[size];
  30.             int index = 0;
  31.             for (int i = 0; i < data.length; i++) {
  32.                 sequenceDNA[index++] = Integer.parseInt(data[i]);
  33.             }
  34.             int maxCount = 0;
  35.             int sequenceIndex = 0;
  36.             for (int i = 0; i < sequenceDNA.length; i++) {
  37.                 int currentCount = 0;
  38.                 for (int j = i; j < sequenceDNA.length; j++) {
  39.                     if (sequenceDNA[i] == sequenceDNA[j]) {
  40.                         currentCount++;
  41.                         if (currentCount > maxCount) {
  42.                             maxCount = currentCount;
  43.                             sequenceIndex = i;
  44.                         }
  45.                     } else {
  46.                         break;
  47.                     }
  48.                 }
  49.             }
  50.             int sequenceSum = 0;
  51.             for (int i = 0; i < sequenceDNA.length; i++) {
  52.                 if (sequenceDNA[i] == 1) {
  53.                     sequenceSum += sequenceDNA[i];
  54.                 }
  55.             }
  56.             if (sequenceIndex < bestSequenceIndex || sequenceSum > bestSequenceSum) {
  57.                 sequenceOutput = "";
  58.                 bestSequenceIndex = sequenceIndex;
  59.                 bestSequenceSum = sequenceSum;
  60.                 bestSequenceIndexRowOutput = bestSequenceIndexRow;
  61.                 for (int i = 0; i < sequenceDNA.length; i++) {
  62.                     sequenceOutput += sequenceDNA[i] + " ";
  63.                 }
  64.             }
  65.         }
  66.         System.out.println(String.format("Best DNA sample %d with sum: %d.",
  67.                 bestSequenceIndexRowOutput, bestSequenceSum));
  68.         System.out.println(sequenceOutput.trim());
  69.     }
  70. }
  71.  
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment