Fundamentals - Java - Arrays - Kamino Factory 50/100
Здравеите , може ли малко помощ за тази задача , дава ми 50 от 100 но примерите от условието ми работят и аз също опитах други тестове които работят и не знам къде ми е грешката.
package SoftUniArrays; import java.util.Arrays; import java.util.Scanner; public class KaminoFactory { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int sequenceLength = Integer.parseInt(scan.nextLine()); String thesequence = scan.nextLine(); String[] sequence = thesequence.split("!"); int amount = 1; int lastIndex = 0; int firstIndex = 0; int currentBiggest = 0; int currentIndex = 0; int counter = 0; int finalcounter = 0; int finalamount = 0; int amountOnes = 0; int maxOnes = 0; boolean flag=false; String[] currentSequence = new String[sequenceLength]; while (!thesequence.equals("Clone them!")) { sequence = thesequence.split("!"); for (int i = 0; i < sequenceLength; i++) { if (sequence[i].equals("1")) { amountOnes += 1; } } for (int i = 0; i < sequenceLength - 1; i++) { if (sequence[i].equals("1") && (!sequence[i + 1].equals("0"))) { amount += 1; lastIndex = i + 1; } } counter += 1; if (amount > lastIndex) { firstIndex = amount - lastIndex - 1; } else { firstIndex = lastIndex - amount + 1; } if (currentBiggest == amount && firstIndex == currentIndex && amountOnes>maxOnes) { currentBiggest = amountOnes; currentIndex = firstIndex; currentSequence = sequence; finalcounter = counter; finalamount = amount; flag = true; } else if (currentBiggest == amount && firstIndex < currentIndex) { currentIndex = firstIndex; currentSequence = sequence; finalcounter = counter; finalamount = amount; flag=false; } else if (currentBiggest < amount) { currentBiggest = amount; currentIndex = firstIndex; currentSequence = sequence; finalcounter = counter; finalamount = amount; if (amountOnes>maxOnes){ flag = true; } } if (amountOnes>maxOnes){ maxOnes = amountOnes; } amountOnes = 0; amount = 1; lastIndex = 0; firstIndex = 0; thesequence = scan.nextLine(); } if (flag) { System.out.printf("Best DNA sample %d with sum: %d.", finalcounter,maxOnes); }else { System.out.printf("Best DNA sample %d with sum: %d.", finalcounter, finalamount); } System.out.println(""); for (int i = 0; i < sequenceLength; i++) { System.out.print(currentSequence[i] + " "); } } }