Advertisement
IvanBorisovG

03. Star Enigma

Mar 7th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.37 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5. using System.Numerics;
  6. using System.Text;
  7.  
  8. namespace Exam03
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             var numberOfTheIterations = int.Parse(Console.ReadLine());
  15.  
  16.             var attackedPlanets = new List<string>();
  17.             var destroyedPlanets = new List<string>();
  18.  
  19.             for (int i = 0; i < numberOfTheIterations; i++)
  20.             {
  21.                 var input = Console.ReadLine();
  22.  
  23.                 var key = 0;              
  24.                                                      
  25.                 var pattern = @"[starSTAR]";
  26.                 var keyRegex = new Regex(pattern);
  27.                 var matches = keyRegex.Matches(input);
  28.  
  29.                 foreach (Match match in matches)
  30.                 {
  31.                     key++;
  32.                 }
  33.  
  34.                 var newText = "";
  35.  
  36.                 foreach (var letter in input)
  37.                 {
  38.                     var newletter = (char)(letter - key);
  39.                     newText += string.Concat(newletter);
  40.                 }
  41.                 var nextPatter = @"[^@\-!:>]*@([A-Za-z]+)[^@\-!:>]*:([\d]+)[^@\-!:>]*!(A|D)![^@\-!:>]*->(\d+)";
  42.                 var decryptedRegex = new Regex(nextPatter);
  43.                 var matchh = decryptedRegex.Matches(newText);
  44.  
  45.                 foreach (Match m in matchh)
  46.                 {
  47.                     var groupe1 = m.Groups[1].Value;
  48.                     var groupe3 = m.Groups[3].Value;
  49.  
  50.                     if (groupe3 == "A")
  51.                     {
  52.                         attackedPlanets.Add(groupe1);
  53.                     }
  54.                     else
  55.                     {
  56.                         destroyedPlanets.Add(groupe1);
  57.                     }                    
  58.                 }                      
  59.             }
  60.  
  61.             Console.WriteLine($"Attacked planets: {attackedPlanets.Count}");
  62.             foreach (var planet in attackedPlanets.OrderBy(x => x))
  63.             {
  64.                 Console.WriteLine($"-> {planet}");
  65.             }
  66.  
  67.             Console.WriteLine($"Destroyed planets: {destroyedPlanets.Count}");
  68.             foreach (var planet in destroyedPlanets.OrderBy(x => x))
  69.             {
  70.                 Console.WriteLine($"-> {planet}");
  71.             }
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement