Advertisement
desislava_topuzakova

09. Pokemon Don't Go

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