Arxero

Untitled

Nov 23rd, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.82 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7.  
  8. namespace _02.SpyGram
  9. {
  10.     class Startup
  11.     {
  12.         static void Main()
  13.         {
  14.             Dictionary<string, List<string>> messages = new Dictionary<string, List<string>>();
  15.  
  16.             string privateKey = Console.ReadLine();
  17.  
  18.             int index = 0;
  19.  
  20.             Regex regex = new Regex(@"^TO:\s([A-Z]+);\sMESSAGE:\s(.+);$");
  21.  
  22.             string input = Console.ReadLine();
  23.  
  24.             while (input != "END")
  25.             {
  26.                 if (regex.IsMatch(input))
  27.                 {
  28.                     Match match = regex.Match(input);
  29.  
  30.                     string sender = match.Groups[1].ToString();
  31.  
  32.                     if (!messages.ContainsKey(sender))
  33.                     {
  34.                         messages.Add(sender, new List<string>());
  35.                     }
  36.  
  37.                     string convertedMessage = "";
  38.  
  39.                     for (int i = 0; i < match.Length; i++)
  40.                     {
  41.                         if (index > privateKey.Length - 1) index = 0;
  42.                         var x = int.Parse(privateKey[index].ToString());
  43.                         char letter = (char)(match.ToString()[i] + x);
  44.                         convertedMessage += letter;
  45.                         index++;
  46.                     }
  47.                     index = 0;
  48.                     messages[sender].Add(convertedMessage);
  49.  
  50.                 }
  51.                 input = Console.ReadLine();
  52.             }
  53.  
  54.             foreach (var sender in messages.OrderBy(n => n.Key))
  55.             {
  56.                 foreach (var item in sender.Value)
  57.                 {
  58.                     Console.WriteLine(item);
  59.                 }
  60.             }
  61.  
  62.         }
  63.     }
  64. }
Add Comment
Please, Sign In to add comment