VasilKotsev

regeh

Oct 12th, 2018
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.28 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5.  
  6. namespace Regeh
  7. {
  8.     public class Program
  9.     {
  10.         public static void Main()
  11.         {
  12.             var input = Console.ReadLine();
  13.  
  14.             var pattern = @"\[[\x00-\x1F\x21-\x5A\x5C-\x7F]+?<(\d+)REGEH(\d+)>[\x00-\x1F\x21-\x5C\x5E-\x7F]+?\]";
  15.  
  16.             var regex = new Regex(pattern);
  17.             var matches = regex.Matches(input);
  18.  
  19.             var indexes = new List<int>();
  20.             var chars = new List<char>();
  21.  
  22.             foreach (Match match in matches)
  23.             {
  24.                 for (int i = 1; i < match.Groups.Count; i++)
  25.                 {
  26.                     var currentIndex = int.Parse(match.Groups[i].Value);
  27.                    
  28.                     var sumIndexes = indexes.Sum();
  29.                     var newIndex = sumIndexes + currentIndex;
  30.  
  31.                     if(newIndex >= input.Length)
  32.                     {
  33.                         newIndex %= input.Length;
  34.                         newIndex += 1;
  35.                     }
  36.  
  37.                     indexes.Add(currentIndex);
  38.                     chars.Add(input[newIndex]);
  39.                 }
  40.             }
  41.  
  42.             Console.WriteLine(string.Join("", chars));
  43.         }
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment