Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bg.softuni.Fundamentals.Exercise.L12Arrays.T09KaminoFactory;
- import java.util.Arrays;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int sequenceLength = Integer.parseInt(scanner.nextLine());
- int[] bestSequence = new int[sequenceLength];
- int bestSequenceIndex = 1, bestSequenceLength = 0,
- leftmostIndex = Integer.MAX_VALUE, sequenceIndex = 0,
- bestSequenceSum = 0;
- String sequence = scanner.nextLine();
- while (!sequence.equals("Clone them!")) {
- int[] currentSequence = Arrays.stream(sequence.split("!+"))
- .mapToInt(Integer::parseInt)
- .toArray();
- sequenceIndex++;
- int currentSequenceLength = 0, currentSequenceSum = 0;
- int currentLeftmostIndex = Integer.MAX_VALUE;
- int tempLength = 0, tempIndexStart = Integer.MAX_VALUE;
- for (int index = 0; index < sequenceLength; index++) {
- if (currentSequence[index] == 1) {
- if (tempLength == 0)
- tempIndexStart = index;
- tempLength++;
- currentSequenceSum++;
- if (tempLength > currentSequenceLength) {
- currentLeftmostIndex = tempIndexStart;
- currentSequenceLength = tempLength;
- }
- } else {
- tempLength = 0;
- }
- }
- if ((bestSequenceLength < currentSequenceLength)
- || (bestSequenceLength == currentSequenceLength
- && leftmostIndex > currentLeftmostIndex)
- || (bestSequenceLength == currentSequenceLength
- && leftmostIndex == currentLeftmostIndex
- && currentSequenceSum > bestSequenceSum)
- ) {
- bestSequenceLength = currentSequenceLength;
- leftmostIndex = currentLeftmostIndex;
- bestSequence = currentSequence;
- bestSequenceIndex = sequenceIndex;
- bestSequenceSum = currentSequenceSum;
- }
- sequence = scanner.nextLine();
- }
- System.out.printf("Best DNA sample %d with sum: %d.%n", bestSequenceIndex, bestSequenceSum);
- for (int seq : bestSequence) {
- System.out.printf("%d ", seq);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment