desislava_topuzakova

Untitled

Oct 15th, 2021
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  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.  
Advertisement
Add Comment
Please, Sign In to add comment