Advertisement
EvgeniVT

Anonymous Threat

Jun 16th, 2019
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.00 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. namespace Anonymous_Threat
  6. {
  7.     class Program
  8.     {
  9.         public static void Merge(List<string> input, string[] command)
  10.         {
  11.             var temp = "";
  12.             var len = input.Count;
  13.             var start = int.Parse(command[1]);
  14.             if (start < 0)
  15.             {
  16.                 start = 0;
  17.             }
  18.             else if (start > len - 1)
  19.             {
  20.                 start = len - 1;
  21.             }
  22.             var end = int.Parse(command[2]);
  23.             if (end < 0)
  24.             {
  25.                 end = 0;
  26.             }
  27.             else if (end > len - 1)
  28.             {
  29.                 end = len - 1;
  30.             }
  31.             for (int i = start; i <= end; i++)
  32.             {
  33.                 temp += input[i];
  34.             }
  35.             var count = end - start + 1;
  36.             if (start + count > len)
  37.                 count = len - start + 1;
  38.             input.RemoveRange(start, count);
  39.             input.Insert(start, temp);
  40.         }
  41.         public static void Divide(List<string> input, string[] command)
  42.         {
  43.             var index = int.Parse(command[1]);
  44.             var parts = int.Parse(command[2]);
  45.             var temp = input[index];
  46.             var strLen = temp.Length;
  47.             var firstPart = strLen / parts;
  48.             var lastPart = 0;
  49.             if (strLen % parts == 0)
  50.                 lastPart = strLen / parts;
  51.             else
  52.                 lastPart = strLen - (parts - 1) * firstPart;
  53.             var arrStr = new string[parts];
  54.             var count = 0;
  55.             for (int i = 0; i < (parts - 1) * firstPart; i += firstPart)
  56.             {
  57.                 var str = "";
  58.                 for (int j = 0; j < firstPart; j++)
  59.                 {
  60.                     str += temp[i + j];
  61.                 }
  62.                 arrStr[count] = str;
  63.                 count++;
  64.             }
  65.             var str1 = "";
  66.             for (int i = strLen - lastPart; i <= strLen - 1; i++)
  67.             {
  68.                 str1 += temp[i];
  69.             }
  70.             arrStr[count] = str1;
  71.             input.RemoveAt(index);
  72.             input.InsertRange(index, arrStr);
  73.         }
  74.         static void Main()
  75.         {
  76.             List<string> input = Console.ReadLine()
  77.                 .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  78.                 .ToList();
  79.             var command = Console.ReadLine()
  80.                .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  81.                .ToArray();
  82.             while (command[0] != "3:1")
  83.             {
  84.                 if (command[0] == "merge")
  85.                     Merge(input, command);
  86.                 else
  87.                 Divide(input, command);                
  88.                 command = Console.ReadLine()
  89.                .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  90.                .ToArray();
  91.             }
  92.             Console.WriteLine(string.Join(" ", input));
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement