Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

MarioVl avatar MarioVl 1 Точки

Помощ за 9. *Kamino Factory

Здравейте , знам че хора са питали за тази задача и преди . Но не мога да разбера къде ми е грешката . Дава ми 90/100 точки .

Ако може някой да ми каже къде греша ще съм много благодарен . Не е много добре написан кода , но още съм в началото

Благодаря

https://pastebin.com/N9vHe52n

Тагове:
0
Java Fundamentals 13/05/2020 13:27:00
MartinBG avatar MartinBG 4803 Точки

Честно казано, много е трудно да се следва логиката в кода, затова направо пренаписах частта, която анализира inputInt[] и решението мина в Judge:

 

package demo;

import java.util.Scanner;

public class KaminoFactory {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int num = Integer.parseInt(scanner.nextLine());

        String input = scanner.nextLine();
        int positionMAx = num - 1;
        int maxSum = 0;
        int lengthMax = 0;
        int[] winInt = new int[num];
        int counter = 0;
        int counterWin = 0;
        while (!(input.equals("Clone them!"))) {
            counter++;
            int[] inputInt = new int[num];
            String[] inputArr = input.split("!+");
            for (int i = 0; i < num; i++) {
                inputInt[i] = Integer.parseInt(inputArr[i]);
            }

            int sum = 0;
            int curStart = -1;
            int curLength = 0;
            int currentPositionMax = -1;
            int currentLengthMax = 0;
            for (int i = 0; i < inputInt.length; i++) {
                if (inputInt[i] == 1) {
                    if (curStart == -1) {
                        curStart = i;
                    }
                    sum++;
                    curLength++;
                }
                if (inputInt[i] == 0 || i == inputInt.length - 1){
                    if(curLength > currentLengthMax) {
                        currentLengthMax = curLength;
                        currentPositionMax = curStart;
                    }
                    curLength = 0;
                    curStart = -1;
                }
            }

            boolean flagWin = false;

            if (currentLengthMax > lengthMax) {
                flagWin = true;
            }
            if (currentLengthMax == lengthMax && currentPositionMax < positionMAx) {
                flagWin = true;
            }
            if (currentLengthMax == lengthMax && currentPositionMax == positionMAx && sum > maxSum) {
                flagWin = true;

            }
            if (flagWin) {
                lengthMax = currentLengthMax;
                positionMAx = currentPositionMax;
                winInt = inputInt;
                maxSum = sum;
                counterWin = counter;
            }
            input = scanner.nextLine();
        }


        System.out.printf("Best DNA sample %d with sum: %d.%n", counterWin, maxSum);
        for (int i = 0; i < num; i++) {

            System.out.print(winInt[i] + " ");
        }
    }
}

 

1
MarioVl avatar MarioVl 1 Точки

благодаря

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.