Advertisement
desislava_topuzakova

2. Shoot for the Win

Jun 14th, 2023
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. package ExamPreparation;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class SecondTask {
  7. public static void main(String[] args) {
  8. Scanner scanner = new Scanner(System.in);
  9.  
  10. //входни данни
  11. int [] targets = Arrays.stream(scanner.nextLine() //"24 50 36 70"
  12. .split(" ")) //["24", "50", "36", "70"]
  13. .mapToInt(Integer::parseInt) //[24, 50, 36, 70]
  14. .toArray();
  15. int countShotTargets = 0; //брой успешни уцелени мишени
  16.  
  17. String input = scanner.nextLine(); //"End" или индекс под формата на текст
  18. while (!input.equals("End")) {
  19. int shotIndex = Integer.parseInt(input); //целя мишената на дадения индекс
  20.  
  21. //проверка дали индексът е валиден
  22. //валиден индекс: [0; length - 1]
  23. if (shotIndex >= 0 && shotIndex <= targets.length - 1) {
  24. int shotTarget = targets[shotIndex]; //мишена, която е уцелена
  25.  
  26. //преди уцелването -> променяме всички останали мишени
  27. for (int i = 0; i <= targets.length - 1; i++) {
  28. int currentTarget = targets[i];
  29. //всички мишени
  30. //променяме само:
  31. //1. мишени, които не са моята, която ще целя
  32. //2. мишени, които не са -1
  33. //мишена = -1 -> УЦЕЛЕНА
  34. if (i != shotIndex && currentTarget != -1) {
  35. if (currentTarget > shotTarget) {
  36. currentTarget -= shotTarget;
  37. } else {
  38. //currentTarget <= shotTarget
  39. currentTarget += shotTarget;
  40. }
  41. targets[i] = currentTarget; //слагаме новата стойност
  42. }
  43.  
  44. }
  45.  
  46. //целя мишената на дадения индекс -> след промяната на останалите мишени
  47. targets[shotIndex] = -1;
  48. countShotTargets++;
  49. }
  50.  
  51. input = scanner.nextLine();
  52. }
  53.  
  54.  
  55. //финална информация
  56. //1. брой на успешни мишени
  57. //2. масив с мишените и техните стойности
  58.  
  59. System.out.print("Shot targets: " + countShotTargets + " -> ");
  60. for (int target : targets) {
  61. System.out.print(target + " ");
  62. }
  63.  
  64. }
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement