09. Pokemon Don't Go
Имам проблем със задачата. Judge гърми на два теста. Hещо съм пропуснал, но не виждам какво е.
Задачата: https://softuni.bg/trainings/resources/officedocument/43665/exercise-lists-arrays-advanced-java-fundamentals-september-2019/2440
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; public class PokemonDontGo09 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<Integer> inputNumbers = Arrays.stream(scanner.nextLine().split("\\s+")) .map(Integer::parseInt) .collect(Collectors.toList()); int sum = 0; while (inputNumbers.size() > 0) { int index = Integer.parseInt(scanner.nextLine()); boolean flag = false; if (index < 0) { index = 0; inputNumbers.remove(index); inputNumbers.add(index, inputNumbers.get(inputNumbers.size() - 1)); flag = true; } else if (index > inputNumbers.size() - 1) { index = inputNumbers.size() - 1; inputNumbers.remove(index); inputNumbers.add(inputNumbers.get(0)); flag = true; } int numberAtIndex = inputNumbers.get(index); sum += inputNumbers.get(index); if (!flag){ inputNumbers.remove(index); } for (int i = 0; i < inputNumbers.size(); i++) { if (inputNumbers.get(i) <= numberAtIndex) { int newIncrease = numberAtIndex + inputNumbers.get(i); inputNumbers.set(i, newIncrease); } else { int newDecrease = inputNumbers.get(i) - numberAtIndex; inputNumbers.set(i, newDecrease); } } } System.out.println(sum); } }
Благодаря!!
Здравейте,
Може ли малко помощ за същата задача но на Python. Дава ми 90/100 и не мога да разбера какво пропускам.
Благодаря предварително !
@astankin
Грешката е на този ред:
Ако проверите документацията, ще откриете, че list.remove(x) "Remove the first item from the list whose value is equal to x.".
По условие трябва да премахнем елемент от конкретен индекс, а горната команда не ни гарантира това, aко има повече от един елемент с търсената стойност.
Трябва да се използва
list.
pop
([i]), която "Remove the item at the given position in the list, and return it":Много Благодаря за бързия и изчерпателен отговор !