Advertisement
Guest User

Untitled

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