desislava_topuzakova

09. Pokemon Don't Go

Oct 16th, 2021
614
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package Lists_Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class PokemonDontGo_09 {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.         List<Integer> distancePokemons = Arrays.stream(scanner.nextLine().split(" "))
  12.                 .map(Integer::parseInt).collect(Collectors.toList());
  13.         //"4 5 3" -> split -> ["4", "5", "3"] -> [4, 5, 3] -> {4, 5, 3}
  14.  
  15.         //1. index е в листа (index >= 0 && index <= последния индекс)
  16.         //2. index < 0
  17.         //3. index > последния индекс
  18.         //стоп: листът с покемони е празен
  19.         //продължаваме: листът е пълен
  20.  
  21.         int sum = 0;//сума на премахнатите елементи
  22.         while (distancePokemons.size() > 0) {
  23.             int index = Integer.parseInt(scanner.nextLine());
  24.  
  25.             if (index >= 0 && index <= distancePokemons.size() - 1) {
  26.                 int removedElement = distancePokemons.get(index);
  27.                 sum += removedElement;
  28.                 distancePokemons.remove(index);
  29.                 changeElements(distancePokemons, removedElement);
  30.             } else if (index < 0) {
  31.                 int removedElementFirst = distancePokemons.get(0);
  32.                 sum += removedElementFirst;
  33.                 int lastElement = distancePokemons.get(distancePokemons.size() - 1); //последния  елемент
  34.                 distancePokemons.set(0, lastElement);
  35.                 changeElements(distancePokemons, removedElementFirst);
  36.             } else if (index > distancePokemons.size() - 1) {
  37.                 int removedElementLast = distancePokemons.get(distancePokemons.size() - 1);
  38.                 sum += removedElementLast;
  39.                 int firstElement = distancePokemons.get(0);
  40.                 distancePokemons.set(distancePokemons.size() - 1, firstElement);
  41.                 changeElements(distancePokemons, removedElementLast);
  42.             }
  43.         }
  44.         System.out.println(sum);
  45.     }
  46.  
  47.     private static void changeElements(List<Integer> distancePokemons, int removedElement) {
  48.         for (int listIndex = 0; listIndex <= distancePokemons.size() - 1; listIndex++) {
  49.             int currentNumber = distancePokemons.get(listIndex);
  50.             if (currentNumber <= removedElement) {
  51.                 currentNumber += removedElement;
  52.             } else {
  53.                 currentNumber -= removedElement;
  54.             }
  55.             distancePokemons.set(listIndex, currentNumber);
  56.         }
  57.     }
  58. }
  59.  
RAW Paste Data