Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- class GenomeDecoder
- {
- static void Main()
- {
- string firstLine = Console.ReadLine();
- string[] format = firstLine.Split(' ');
- string genome = Console.ReadLine();
- int counter = 0;
- int number = 0;
- int result = 0;
- int indexNumbers = 0;
- int indexLetters = 0;
- string letters = null;
- string previous = null;
- string[] genomeLetters = new string[genome.Length];
- int[] genomeNumbers = new int[genome.Length];
- for (int i = 0; i < genome.Length; i++)
- {
- string digit = genome.Substring(i, 1);
- bool check = Int32.TryParse(digit, out number);
- if (check)
- {
- result = number + counter;
- counter = result * 10;
- if (previous == "letter" || i == genome.Length - 1)
- {
- genomeLetters[indexLetters] = letters;
- letters = null;
- indexLetters++;
- }
- if (i == genome.Length - 1)
- {
- genomeNumbers[indexNumbers] = result;
- }
- previous = "number";
- }
- else
- {
- if (previous == "number")
- {
- genomeNumbers[indexNumbers] = result;
- result = 0;
- counter = 0;
- number = 0;
- indexNumbers++;
- }
- else
- {
- genomeNumbers[indexNumbers] = 1;
- genomeLetters[indexLetters] = letters;
- indexNumbers++;
- indexLetters++;
- }
- letters = digit;
- if (i == genome.Length - 1)
- {
- genomeLetters[indexLetters] = letters;
- }
- previous = "letter";
- }
- }
- string decoded = null;
- for (int i = 0; i < genomeLetters.Length; i++)
- {
- for (int j = 0; j < genomeNumbers[i]; j++)
- {
- decoded = decoded + genomeLetters[i];
- }
- }
- //Console.WriteLine(decoded);
- int length = int.Parse(format[0]);
- int count = int.Parse(format[1]);
- int start = 0;
- int maximum = decoded.Length/length;
- if (decoded.Length % length != 0)
- {
- maximum = maximum + 1;
- }
- int spaces = maximum / 10 ;
- for (int i = 1; i <= maximum ; i++)
- {
- Console.Write(new string(' ', spaces - i/10));
- Console.Write("{0}", i);
- Console.Write(" ");
- for (int j = 1; j <= length; j++)
- {
- Console.Write(decoded.Substring(start, 1));
- if (j % count == 0)
- {
- Console.Write(" ");
- }
- start++;
- if (start == decoded.Length)
- {
- break;
- }
- }
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement