Advertisement
NonaG

RageQuit

Feb 11th, 2017
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. class RageQuit
  8. {
  9. static void Main()
  10. {
  11. var input = Console.ReadLine().ToUpper().ToCharArray();
  12. var stringsRepeat = new Dictionary<string, int>();
  13. var uniques = new List<char>();
  14. for (int i = 1; i < input.Length; i++)
  15. {
  16. if (char.IsDigit(input[i]))
  17. {
  18. var digit = int.Parse(char.GetNumericValue(input[i]).ToString());
  19. if (digit==0)
  20. {
  21. input = input.Skip(i + 1).ToArray();
  22. i = 0;
  23. continue;
  24. }
  25. }
  26. if (i + 1 < input.Length)
  27. {
  28. if (char.IsDigit(input[i]) && !char.IsDigit(input[i + 1]))
  29. {
  30. var stringBefore = new string(input.Take(i).ToArray());
  31. var digit = char.GetNumericValue(input[i]).ToString();
  32. stringsRepeat.Add(stringBefore, int.Parse(digit));
  33. for (int j = 0; j < i; j++)
  34. {
  35. if (!uniques.Contains(input[j]))
  36. {
  37. uniques.Add(input[j]);
  38. }
  39. }
  40. input = input.Skip(i + 1).ToArray();
  41. i = 0;
  42. continue;
  43. }
  44. if (char.IsDigit(input[i]) && char.IsDigit(input[i + 1]))
  45. {
  46. var stringBefore = new string(input.Take(i).ToArray());
  47. var digitTens = char.GetNumericValue(input[i]).ToString();
  48. var digitOnes = char.GetNumericValue(input[i + 1]).ToString();
  49. var number = int.Parse(digitTens) * 10 + int.Parse(digitOnes);
  50. stringsRepeat.Add(stringBefore, number);
  51. for (int j = 0; j < i; j++)
  52. {
  53. if (!uniques.Contains(input[j]))
  54. {
  55. uniques.Add(input[j]);
  56. }
  57. }
  58. input = input.Skip(i + 2).ToArray();
  59. i = 0;
  60. continue;
  61. }
  62. }
  63. if (i + 1 == input.Length)
  64. {
  65. if (char.IsDigit(input[i]))
  66. {
  67. var stringBefore = new string(input.Take(i).ToArray());
  68. var digit = char.GetNumericValue(input[i]).ToString();
  69. stringsRepeat.Add(stringBefore, int.Parse(digit));
  70. for (int j = 0; j < i; j++)
  71. {
  72. if (!uniques.Contains(input[j]))
  73. {
  74. uniques.Add(input[j]);
  75. }
  76. }
  77. input = input.Skip(i + 1).ToArray();
  78. i = 0;
  79. }
  80. }
  81.  
  82. }
  83. Console.WriteLine("Unique symbols used: {0}", uniques.Count);
  84. foreach (var str in stringsRepeat)
  85. {
  86. for (int i = 0; i < str.Value; i++)
  87. {
  88. Console.Write(string.Join("", str.Key));
  89. }
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement