IPetrov007

SpyGram

May 16th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 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 Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. var pattern = @"^TO: ([A-Z]+); MESSAGE: (.+);$";
  15. var validatoin = new Regex(pattern);
  16. var pendingMessages = new Dictionary<string, List<string>>();
  17. var key = Console.ReadLine();
  18.  
  19. while (true)
  20. {
  21. var inputLine = Console.ReadLine();
  22. if (inputLine == "END")
  23. {
  24. break;
  25. }
  26. var isMatch = validatoin.IsMatch(inputLine);
  27. if (!isMatch)
  28. {
  29. continue;
  30. }
  31.  
  32. var senderName = validatoin.Match(inputLine).Groups[1].ToString();
  33.  
  34.  
  35. var sb = new StringBuilder();
  36. var simbolOfKey = key.ToCharArray();
  37.  
  38. var positionOfSimbols = 0;
  39. for (int i = 0; i < key.Length; i++)
  40. {
  41. var result = (char)(inputLine[positionOfSimbols] + int.Parse(simbolOfKey[i].ToString()));
  42. sb.Append(result);
  43. if (i == key.Length - 1)
  44. {
  45. i = -1;
  46. }
  47. positionOfSimbols++;
  48. if (positionOfSimbols == inputLine.Length)
  49. {
  50. break;
  51. }
  52. }
  53.  
  54. if (!pendingMessages.ContainsKey(senderName))
  55. {
  56. pendingMessages[senderName] =new List<string>();
  57. }
  58. pendingMessages[senderName].Add(sb.ToString());
  59. }
  60.  
  61. foreach (var item in pendingMessages.OrderBy(x => x.Key))
  62. {
  63. foreach (var message in item.Value)
  64. {
  65. Console.WriteLine(message);
  66. }
  67. }
  68. }
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment