Advertisement
desislava_topuzakova

09. Pokemon Don't Go

Jun 17th, 2022
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. package Lists;
  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 Pokemons_09 {
  9. public static void main(String[] args) {
  10. Scanner scanner = new Scanner(System.in);
  11. List<Integer> distances = Arrays.stream(scanner.nextLine()
  12. .split(" "))
  13. .map(Integer::parseInt)
  14. .collect(Collectors.toList());
  15.  
  16. //повтаряме:
  17. //спираме: разстоянията свършат
  18. //продължаваме: имаме разстояния между покемоните
  19. int sumRemoved = 0; //сума на премахнати елементи
  20. while (distances.size() > 0) {
  21. int index = Integer.parseInt(scanner.nextLine());
  22. //< 0
  23. if (index < 0) {
  24. //{4, 5, 3}
  25. int firstElement = distances.get(0); //4 - премахнат
  26. sumRemoved += firstElement;
  27. int lastElement = distances.get(distances.size() - 1); // 3
  28. distances.set(0, lastElement); //{3, 5, 3}
  29. //модификация на списъка
  30. modifyList(distances, firstElement);
  31. }
  32. // > последния
  33. else if (index > distances.size() - 1) {
  34. //{4, 5, 3}
  35. int firstElement = distances.get(0); //4
  36. int lastElement = distances.get(distances.size() - 1); // 3 - премахнат
  37. sumRemoved += lastElement;
  38. distances.set(distances.size() - 1, firstElement); //{3, 5, 4}
  39. //модификация на списъка
  40. modifyList(distances, lastElement);
  41. }
  42. // между 0 и последния
  43. else if (index >= 0 && index <= distances.size() - 1) {
  44. int removedElement = distances.get(index);
  45. sumRemoved += removedElement;
  46. distances.remove(index);
  47. //модификация на списъка
  48. modifyList(distances, removedElement);
  49. }
  50. }
  51.  
  52. System.out.println(sumRemoved);
  53. }
  54.  
  55. public static void modifyList(List<Integer> list, int removedElement) {
  56. for (int index = 0; index <= list.size() - 1 ; index++) {
  57. int currentElement = list.get(index);
  58. if (currentElement <= removedElement) {
  59. currentElement += removedElement;
  60. } else {
  61. currentElement -= removedElement;
  62. }
  63. //замествам старата стойност на елемента с променената
  64. list.set(index, currentElement);
  65. }
  66. }
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement