Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pfRetake27AugPart1;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.stream.Collectors;
- public class GrainsOfSand {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- List<Integer> nums = Arrays.stream(reader.readLine().split("\\s+"))
- .map(Integer::parseInt).collect(Collectors.toList());
- while (true) {
- String input = reader.readLine();
- if (input.equals("Mort")) {
- break;
- }
- String[] tokens = input.split("\\s+");
- String cmd = tokens[0];
- switch (cmd) {
- case "Add":
- int numToAdd = Integer.parseInt(tokens[1]);
- nums.add(numToAdd);
- break;
- case "Remove":
- int numToRemove = Integer.parseInt(tokens[1]);
- if (nums.contains(numToRemove)) {
- nums.remove(Integer.valueOf(numToRemove));
- } else {
- if (numToRemove < nums.size() && numToRemove >= 0) {
- nums.remove(numToRemove);
- }
- }
- break;
- case "Replace":
- int value = Integer.parseInt(tokens[1]);
- int replacement = Integer.parseInt(tokens[2]);
- if (nums.contains(value)) {
- int index = nums.indexOf(value);
- nums.set(index, replacement);
- }
- break;
- case "Increase":
- int valuee = Integer.parseInt(tokens[1]);
- int increaseWith = checkIfHasBiggerValue(nums, valuee);
- if (increaseWith == -1){
- int last = nums.get(nums.size() - 1);
- for (int i = 0; i < nums.size(); i++) {
- nums.set(i, nums.get(i) + last);
- }
- }
- else {
- for (int i = 0; i < nums.size(); i++) {
- nums.set(i, nums.get(i) + increaseWith);
- }
- }
- break;
- case "Collapse":
- int removeValueLess = Integer.parseInt(tokens[1]);
- for (int i = 0; i < nums.size(); i++) {
- if (nums.get(i) < removeValueLess) {
- nums.remove(nums.get(i));
- i--;
- }
- }
- break;
- }
- }
- for (Integer num : nums) {
- System.out.print(num + " ");
- }
- }
- private static int checkIfHasBiggerValue(List<Integer> nums, int valuee) {
- int increaseWith = 0;
- for (int i = 0; i < nums.size(); i++) {
- if (nums.get(i) >= valuee) {
- return nums.get(i);
- }
- }
- return -1;
- }
- }
Add Comment
Please, Sign In to add comment