Задача "Moving Target" минава на 40/100
Здравейте,
Моля за съдействие, в "judge" ми дава 40/100. Прегледах доста решения, но не намирам къде греша. Моя код е:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; public class ExMitExamMovingTarget { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<Integer> input = Arrays.stream(scanner.nextLine().split("\\s+")) .map(Integer::parseInt) .collect(Collectors.toList()); String[] command = scanner.nextLine().split("\\s+"); while (!command[0].equals("End")) { String task = command[0]; int index = Integer.parseInt(command[1]); switch (task) { case("Shoot"): if (index>=0&&index<input.size()) { int power = Integer.parseInt(command[2]); int workNum = input.get(index); workNum=workNum-power; if(workNum>0) { input.set(index,workNum); } else { input.remove(index); } } else { break; } break; case ("Add"): if (index>=0&&index<input.size()) { int value = Integer.parseInt(command[1]); input.add(index,value); } else { System.out.println("Invalid placement!"); } break; case ("Strike"): if (index>=0&&index<input.size()) { int value = Integer.parseInt(command[2]); int end = index+value; int start = index-value; if (start>=0&&end<input.size()) { for (int i = start; i <= end; i++) { input.remove(start); } } else { System.out.println("Strike missed!"); } } break; } command = scanner.nextLine().split("\\s+"); } List<String> toPrint = new ArrayList<>(); for (int i = 0; i < input.size(); i++) { toPrint.add(String.valueOf(input.get(i))); } System.out.println(String.join("|",toPrint)); } }
Благодаря предварително за съдействието.
Спорен ден.
Здравей,
Благодаря за детайлното обяснение и отделеното време.
Пламен