Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- class RageQuit
- {
- static void Main()
- {
- var input = Console.ReadLine().ToUpper().ToCharArray();
- var stringsRepeat = new Dictionary<string, int>();
- var uniques = new List<char>();
- for (int i = 1; i < input.Length; i++)
- {
- if (char.IsDigit(input[i]))
- {
- var digit = int.Parse(char.GetNumericValue(input[i]).ToString());
- if (digit==0)
- {
- input = input.Skip(i + 1).ToArray();
- i = 0;
- continue;
- }
- }
- if (i + 1 < input.Length)
- {
- if (char.IsDigit(input[i]) && !char.IsDigit(input[i + 1]))
- {
- var stringBefore = new string(input.Take(i).ToArray());
- var digit = char.GetNumericValue(input[i]).ToString();
- stringsRepeat.Add(stringBefore, int.Parse(digit));
- for (int j = 0; j < i; j++)
- {
- if (!uniques.Contains(input[j]))
- {
- uniques.Add(input[j]);
- }
- }
- input = input.Skip(i + 1).ToArray();
- i = 0;
- continue;
- }
- if (char.IsDigit(input[i]) && char.IsDigit(input[i + 1]))
- {
- var stringBefore = new string(input.Take(i).ToArray());
- var digitTens = char.GetNumericValue(input[i]).ToString();
- var digitOnes = char.GetNumericValue(input[i + 1]).ToString();
- var number = int.Parse(digitTens) * 10 + int.Parse(digitOnes);
- stringsRepeat.Add(stringBefore, number);
- for (int j = 0; j < i; j++)
- {
- if (!uniques.Contains(input[j]))
- {
- uniques.Add(input[j]);
- }
- }
- input = input.Skip(i + 2).ToArray();
- i = 0;
- continue;
- }
- }
- if (i + 1 == input.Length)
- {
- if (char.IsDigit(input[i]))
- {
- var stringBefore = new string(input.Take(i).ToArray());
- var digit = char.GetNumericValue(input[i]).ToString();
- stringsRepeat.Add(stringBefore, int.Parse(digit));
- for (int j = 0; j < i; j++)
- {
- if (!uniques.Contains(input[j]))
- {
- uniques.Add(input[j]);
- }
- }
- input = input.Skip(i + 1).ToArray();
- i = 0;
- }
- }
- }
- Console.WriteLine("Unique symbols used: {0}", uniques.Count);
- foreach (var str in stringsRepeat)
- {
- for (int i = 0; i < str.Value; i++)
- {
- Console.Write(string.Join("", str.Key));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement