emodev

Untitled

Dec 10th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.30 KB | None | 0 0
  1. package pfRetake27AugPart1;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8. import java.util.List;
  9. import java.util.stream.Collectors;
  10.  
  11. public class GrainsOfSand {
  12.     public static void main(String[] args) throws IOException {
  13.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  14.         List<Integer> nums = Arrays.stream(reader.readLine().split("\\s+"))
  15.                 .map(Integer::parseInt).collect(Collectors.toList());
  16.  
  17.         while (true) {
  18.             String input = reader.readLine();
  19.             if (input.equals("Mort")) {
  20.                 break;
  21.             }
  22.  
  23.             String[] tokens = input.split("\\s+");
  24.             String cmd = tokens[0];
  25.  
  26.             switch (cmd) {
  27.                 case "Add":
  28.                     int numToAdd = Integer.parseInt(tokens[1]);
  29.                     nums.add(numToAdd);
  30.                     break;
  31.                 case "Remove":
  32.                     int numToRemove = Integer.parseInt(tokens[1]);
  33.                     if (nums.contains(numToRemove)) {
  34.                         nums.remove(Integer.valueOf(numToRemove));
  35.                     } else {
  36.                         if (numToRemove < nums.size() && numToRemove >= 0) {
  37.                             nums.remove(numToRemove);
  38.                         }
  39.                     }
  40.                     break;
  41.                 case "Replace":
  42.                     int value = Integer.parseInt(tokens[1]);
  43.                     int replacement = Integer.parseInt(tokens[2]);
  44.                     if (nums.contains(value)) {
  45.                         int index = nums.indexOf(value);
  46.                         nums.set(index, replacement);
  47.                     }
  48.                     break;
  49.                 case "Increase":
  50.                     int valuee = Integer.parseInt(tokens[1]);
  51.                     int increaseWith = checkIfHasBiggerValue(nums, valuee);
  52.                     if (increaseWith == -1){
  53.                         int last = nums.get(nums.size() - 1);
  54.                         for (int i = 0; i < nums.size(); i++) {
  55.                             nums.set(i, nums.get(i) + last);
  56.                         }
  57.                     }
  58.                     else {
  59.                         for (int i = 0; i < nums.size(); i++) {
  60.                             nums.set(i, nums.get(i) + increaseWith);
  61.                         }
  62.                     }
  63.                     break;
  64.                 case "Collapse":
  65.                     int removeValueLess = Integer.parseInt(tokens[1]);
  66.                     for (int i = 0; i < nums.size(); i++) {
  67.                         if (nums.get(i) < removeValueLess) {
  68.                             nums.remove(nums.get(i));
  69.                             i--;
  70.                         }
  71.                     }
  72.                     break;
  73.  
  74.  
  75.             }
  76.  
  77.  
  78.         }
  79.  
  80.         for (Integer num : nums) {
  81.             System.out.print(num + " ");
  82.         }
  83.  
  84.     }
  85.  
  86.     private static int checkIfHasBiggerValue(List<Integer> nums, int valuee) {
  87.         int increaseWith = 0;
  88.         for (int i = 0; i < nums.size(); i++) {
  89.             if (nums.get(i) >= valuee) {
  90.                 return nums.get(i);
  91.             }
  92.         }
  93.         return -1;
  94.     }
  95. }
Add Comment
Please, Sign In to add comment