Loading...
Dakata450 avatar Dakata450 0 Точки

Здравейте, не успявам да отркрия грешката си в кода judge дава 70/100 задача Man O War

Man O War

Моето решение package midExam;import java.util.Arrays;import java.util.List;import jav - Pastebin.com 70/100

Условие на задачата   https://judge.softuni.org/Contests/Practice/DownloadResource/17132

 

всички входни данни излизат 

Тагове:
0
Fundamentals Module
Axiomatik avatar Axiomatik 2422 Точки

Two minor errors in Status + Fire commands.

;-)

package midExam;
 
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
 
public class manOfWar {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
 
        List<Integer> pirateShip = Arrays.stream(scanner.nextLine().split(">")).
                map(Integer::parseInt).collect(Collectors.toList());
        List<Integer> warShip = Arrays.stream(scanner.nextLine().split(">")).
                map(Integer::parseInt).collect(Collectors.toList());
        int maxHealth = Integer.parseInt(scanner.nextLine());
        String comand = scanner.nextLine();
        int countPirate = 0;
        boolean isSunk = false;
 
        while (!comand.equals("Retire")){
            String[] comandArr = comand.split(" ");
 
 
            if (comand.contains("Fire")){
                int index = Integer.parseInt(comandArr[1]);
                int damage = Integer.parseInt(comandArr[2]);
                if (index >= 0 && index <= warShip.size() -1){
                    int curentIndexWarShip = warShip.get(index);
                    curentIndexWarShip -= damage;
                    warShip.set(index, curentIndexWarShip);
                    if (curentIndexWarShip <= 0){
                        System.out.println("You won! The enemy ship has sunken.");
                      isSunk = true;  
                      break;
                    }
                }
            }else if (comand.contains("Defend")){
                int startIndex = Integer.parseInt(comandArr[1]);
                int endIndex = Integer.parseInt(comandArr[2]);
                int damagePirate = Integer.parseInt(comandArr[3]);
                if (startIndex >= 0 && startIndex < pirateShip.size() && endIndex >= 0 && endIndex < pirateShip.size()){
                    for (int i = startIndex; i <= endIndex; i++) {
                        int curentSection = pirateShip.get(i);
                        curentSection -= damagePirate;
                        if (curentSection <= 0){
                            System.out.println("You lost! The pirate ship has sunken.");
                            pirateShip.set(i, curentSection);
                            isSunk = true;
                            break;
                        }
                        pirateShip.set(i, curentSection);
                    }
                }
            }else if (comand.contains("Repair")){
                int indexSection = Integer.parseInt(comandArr[1]);
                int health = Integer.parseInt(comandArr[2]);
                if (indexSection >= 0 && indexSection < pirateShip.size()){
                    int valuePirateSection = pirateShip.get(indexSection);
                    if (valuePirateSection + health >= maxHealth){
                        valuePirateSection = maxHealth;
                        pirateShip.set(indexSection, valuePirateSection);
                    }else {
                        valuePirateSection += health;
                        pirateShip.set(indexSection, valuePirateSection);
                    }
                }
            }else if (comand.equals("Status")){
                double status = maxHealth * 0.2;
                for (int item : pirateShip) {
                    if (item < status){
                        countPirate += 1;
                    }
                }
                System.out.printf("%d sections need repair.%n", countPirate);
              countPirate = 0;
            }
 
            comand = scanner.nextLine();
        }
        if (isSunk){
            return;
        }
        int pirate = 0;
        int war = 0;
        for (int item : pirateShip) {
            pirate += item;
        }
        for (int product : warShip) {
            war += product;
        }
        System.out.printf("Pirate ship status: %d%n", pirate);
        System.out.printf("Warship status: %d", war);
 
    }
}
 

 

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