Advertisement
deyanmalinov

08. Anonymous Threat

Mar 6th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. package DPM;
  2. import java.util.*;
  3. import java.util.stream.Collectors;
  4. public class Main {
  5.     public static void main(String[] args) {
  6.         Scanner scan = new Scanner(System.in);
  7.         String [] line = scan.nextLine().split(" ");
  8.         List<String> strList = new ArrayList<>();
  9.         for (int i = 0; i < line.length; i++) {
  10.             strList.add(i, line[i]);
  11.         }
  12.         String data = scan.nextLine();
  13.  
  14.         while (!data.equals("3:1")){
  15.             String[] comand = data.split(" ");
  16.             if (comand[0].equals("merge")){
  17.                 int start = Integer.parseInt(comand[1]);
  18.                 int end = Integer.parseInt(comand[2]);
  19.                 start = validIndex(start, strList.size());
  20.                 end = validIndex(end, strList.size());
  21.                 String newElements = String.join("", strList.subList(start, end+1));
  22.                 strList.subList(start, end+1).clear();
  23.  
  24.                     strList.add(start, newElements);
  25.  
  26.             }else if (comand[0].equals("divide")){
  27.                 int index = Integer.parseInt(comand[1]);
  28.                 int part = Integer.parseInt(comand[2]);
  29.                 List<String> res = delene(strList.get(index), part);
  30.                 strList.remove(index);
  31.                 strList.addAll(index, res);
  32.             }
  33.             data = scan.nextLine();
  34.  
  35.         }
  36.         for (String s : strList) {
  37.             System.out.print(s + " ");
  38.         }
  39.     }
  40.  
  41.     private static List<String> delene(String ele, int part) {
  42.          int part1 = ele.length() / part;
  43.         ArrayList<String> res = new ArrayList<>();
  44.         while (ele.length() >= part1){
  45.             res.add(ele.substring(0, part1));
  46.             ele = ele.substring(part1);
  47.         }
  48.         if (res.size() == part){
  49.             return res;
  50.         }else {
  51.             String concLTele = res.get(res.size() -2).concat(res.get(res.size()-1));
  52.             res.subList(res.size() -2, res.size()).clear();
  53.             res.add(concLTele);
  54.             return res;
  55.         }
  56.  
  57.  
  58.         }
  59.  
  60.  
  61.     private static int validIndex (int index, int lenght){
  62.         if (index<0){
  63.             index=0;
  64.         }
  65.         if (index>lenght-1){
  66.             index = lenght-1;
  67.         }
  68.         return index;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement