Advertisement
Lyubohd

08. Anonymous Threat

Jun 19th, 2020
1,206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7.         Scanner scan = new Scanner(System.in);
  8.         List<String> data = readStringList(scan);
  9.  
  10.         String input = scan.nextLine();
  11.  
  12.         while (!input.equals("3:1")) {
  13.  
  14.             String[] tokens = input.split("\\s+");
  15.  
  16.             if (tokens[0].equals("merge")) {
  17.                 String concatStr = "";
  18.                 int begin = Integer.parseInt(tokens[1]);
  19.                 int end = Integer.parseInt(tokens[2]);
  20.                 begin = Math.max(0, begin);
  21.                 if (begin >= data.size()) {
  22.                     begin = data.size() - 1;
  23.                 }
  24.                 end = Math.min(data.size() - 1, end);
  25.                 for (int i = begin; i <= end; i++) {
  26.                     concatStr += data.get(begin);
  27.                     data.remove(begin);
  28.                 }
  29.                 data.add(begin, concatStr);
  30.             } else {
  31.                 int index = Integer.parseInt(tokens[1]);
  32.                 int partitions = Integer.parseInt(tokens[2]);
  33.                 String element = data.get(index);
  34.                 data.remove(index);
  35.  
  36.                 int size = element.length() / partitions;
  37.                 int begin = 0;
  38.  
  39.                 for (int i = 0; i < partitions - 1; i++) {
  40.                     data.add(index++, element.substring(begin, begin + size));
  41.                     begin += size;
  42.                 }
  43.  
  44.                 data.add(index, element.substring(begin));
  45.             }
  46.  
  47.             input = scan.nextLine();
  48.         }
  49.  
  50.         System.out.println(String.join(" ", data));
  51.     }
  52.  
  53.     private static List<String> readStringList(Scanner scan) {
  54.         String[] input = scan.nextLine().split("\\s+");
  55.         List<String> result = new ArrayList<>();
  56.         for (String item : input) {
  57.             result.add(item);
  58.         }
  59.  
  60.         return result;
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement