Advertisement
CuST0M1z3

AlphabeticalWords

Apr 15th, 2014
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.76 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.  
  8. class AlphabeticalWord
  9. {
  10.     static Dictionary<string, int> alphabeticWords = new Dictionary<string, int>();
  11.     static StringBuilder currentSequence = new StringBuilder();
  12.     static char currentLetter;
  13.     static int currentSeqLength = 1;
  14.     static int maxSeqLength = int.MinValue;
  15.  
  16.     static void Main()
  17.     {
  18.         string word = Console.ReadLine();
  19.         int n = int.Parse(Console.ReadLine());
  20.         char[,] letters = new char[n, n];
  21.         int letterCounter = 0;
  22.  
  23.         for (int row = 0; row < letters.GetLength(0); row++)
  24.         {
  25.             for (int col = 0; col < letters.GetLength(1); col++)
  26.             {
  27.                 letters[row, col] = word[letterCounter];
  28.                 letterCounter++;
  29.                 if (letterCounter >= word.Length)
  30.                 {
  31.                     letterCounter = 0;
  32.                 }
  33.             }
  34.         }        
  35.  
  36.         for (int row = 0; row < letters.GetLength(0); row++)
  37.         {
  38.             for (int col = 0; col < letters.GetLength(1); col++)
  39.             {                
  40.                 currentLetter = letters[row,col];
  41.                 currentSequence.Append(letters[row, col]);
  42.                 currentSeqLength = 1;
  43.                 for (int i = col + 1; i < letters.GetLength(1); i++)
  44.                 {
  45.                     if ((letters[row, i] - '0') > (currentLetter - '0'))
  46.                     {
  47.                         currentLetter = letters[row, i];
  48.                         currentSequence.Append(letters[row, i]);
  49.                         currentSeqLength++;
  50.                     }
  51.                     else
  52.                     {
  53.                         break;                        
  54.                     }
  55.                 }
  56.                 CheckSequence(currentSeqLength);
  57.                 currentSequence.Clear();
  58.                 currentLetter = letters[row, col];
  59.                 currentSequence.Append(letters[row, col]);
  60.                 currentSeqLength = 1;
  61.                 for (int i = col - 1; i >= 0; i--)
  62.                 {
  63.                     if ((letters[row, i] - '0') > (currentLetter - '0'))
  64.                     {
  65.                         currentLetter = letters[row, i];
  66.                         currentSequence.Append(letters[row, i]);
  67.                         currentSeqLength++;
  68.                     }
  69.                     else
  70.                     {
  71.                         break;
  72.                     }
  73.                 }
  74.                 CheckSequence(currentSeqLength);
  75.                 currentSequence.Clear();
  76.                 currentLetter = letters[row, col];
  77.                 currentSequence.Append(letters[row, col]);
  78.                 currentSeqLength = 1;
  79.                 for (int i = row - 1; i >= 0; i--)
  80.                 {
  81.                     if ((letters[i, col] - '0') > (currentLetter - '0'))
  82.                     {
  83.                         currentLetter = letters[i, col];
  84.                         currentSequence.Append(letters[i, col]);
  85.                         currentSeqLength++;
  86.                     }
  87.                     else
  88.                     {
  89.                         break;
  90.                     }
  91.                 }
  92.                 CheckSequence(currentSeqLength);
  93.                 currentSequence.Clear();
  94.                 currentLetter = letters[row, col];
  95.                 currentSequence.Append(letters[row, col]);
  96.                 currentSeqLength = 1;
  97.                 for (int i = row + 1; i < letters.GetLength(0); i++)
  98.                 {
  99.                     if ((letters[i, col] - '0') > (currentLetter - '0'))
  100.                     {
  101.                         currentLetter = letters[i, col];
  102.                         currentSequence.Append(letters[i, col]);
  103.                         currentSeqLength++;
  104.                     }
  105.                     else
  106.                     {
  107.                         break;
  108.                     }
  109.                 }
  110.                 CheckSequence(currentSeqLength);
  111.             }
  112.         }
  113.  
  114.         var list = alphabeticWords.Keys.ToList();
  115.         list.Sort();
  116.         Console.WriteLine(list[0]);
  117.     }
  118.  
  119.     static void CheckSequence(int currentSeqLength)
  120.     {
  121.         if (currentSeqLength > maxSeqLength)
  122.         {
  123.             maxSeqLength = currentSeqLength;
  124.             alphabeticWords.Clear();
  125.             alphabeticWords.Add(currentSequence.ToString(), 1);
  126.             currentSequence.Clear();
  127.         }
  128.         else if (currentSeqLength == maxSeqLength)
  129.         {
  130.             if (!alphabeticWords.ContainsKey(currentSequence.ToString()))
  131.             {
  132.                 alphabeticWords.Add(currentSequence.ToString(), 1);
  133.             }
  134.         }
  135.         currentSequence.Clear();
  136.     }
  137.  
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement