desislava_topuzakova

Untitled

Oct 13th, 2021
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1.  
  2. package bg.softuni.Fundamentals.Exercise.L12Arrays.T09KaminoFactory;
  3.  
  4. import java.util.Arrays;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9.  
  10. Scanner scanner = new Scanner(System.in);
  11.  
  12. int sequenceLength = Integer.parseInt(scanner.nextLine());
  13.  
  14. int[] bestSequence = new int[sequenceLength];
  15. int bestSequenceIndex = 1, bestSequenceLength = 0,
  16. leftmostIndex = Integer.MAX_VALUE, sequenceIndex = 0,
  17. bestSequenceSum = 0;
  18. String sequence = scanner.nextLine();
  19.  
  20. while (!sequence.equals("Clone them!")) {
  21.  
  22. int[] currentSequence = Arrays.stream(sequence.split("!+"))
  23. .mapToInt(Integer::parseInt)
  24. .toArray();
  25.  
  26. sequenceIndex++;
  27. int currentSequenceLength = 0, currentSequenceSum = 0;
  28. int currentLeftmostIndex = Integer.MAX_VALUE;
  29. int tempLength = 0, tempIndexStart = Integer.MAX_VALUE;
  30.  
  31. for (int index = 0; index < sequenceLength; index++) {
  32. if (currentSequence[index] == 1) {
  33. if (tempLength == 0)
  34. tempIndexStart = index;
  35. tempLength++;
  36. currentSequenceSum++;
  37. if (tempLength > currentSequenceLength) {
  38. currentLeftmostIndex = tempIndexStart;
  39. currentSequenceLength = tempLength;
  40. }
  41.  
  42. } else {
  43. tempLength = 0;
  44. }
  45.  
  46. }
  47.  
  48. if ((bestSequenceLength < currentSequenceLength)
  49. || (bestSequenceLength == currentSequenceLength
  50. && leftmostIndex > currentLeftmostIndex)
  51. || (bestSequenceLength == currentSequenceLength
  52. && leftmostIndex == currentLeftmostIndex
  53. && currentSequenceSum > bestSequenceSum)
  54. ) {
  55.  
  56. bestSequenceLength = currentSequenceLength;
  57. leftmostIndex = currentLeftmostIndex;
  58. bestSequence = currentSequence;
  59. bestSequenceIndex = sequenceIndex;
  60. bestSequenceSum = currentSequenceSum;
  61. }
  62. sequence = scanner.nextLine();
  63. }
  64. System.out.printf("Best DNA sample %d with sum: %d.%n", bestSequenceIndex, bestSequenceSum);
  65. for (int seq : bestSequence) {
  66. System.out.printf("%d ", seq);
  67. }
  68.  
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment