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 AlphabeticalWord
- {
- static Dictionary<string, int> alphabeticWords = new Dictionary<string, int>();
- static StringBuilder currentSequence = new StringBuilder();
- static char currentLetter;
- static int currentSeqLength = 1;
- static int maxSeqLength = int.MinValue;
- static void Main()
- {
- string word = Console.ReadLine();
- int n = int.Parse(Console.ReadLine());
- char[,] letters = new char[n, n];
- int letterCounter = 0;
- for (int row = 0; row < letters.GetLength(0); row++)
- {
- for (int col = 0; col < letters.GetLength(1); col++)
- {
- letters[row, col] = word[letterCounter];
- letterCounter++;
- if (letterCounter >= word.Length)
- {
- letterCounter = 0;
- }
- }
- }
- for (int row = 0; row < letters.GetLength(0); row++)
- {
- for (int col = 0; col < letters.GetLength(1); col++)
- {
- currentLetter = letters[row,col];
- currentSequence.Append(letters[row, col]);
- currentSeqLength = 1;
- for (int i = col + 1; i < letters.GetLength(1); i++)
- {
- if ((letters[row, i] - '0') > (currentLetter - '0'))
- {
- currentLetter = letters[row, i];
- currentSequence.Append(letters[row, i]);
- currentSeqLength++;
- }
- else
- {
- break;
- }
- }
- CheckSequence(currentSeqLength);
- currentSequence.Clear();
- currentLetter = letters[row, col];
- currentSequence.Append(letters[row, col]);
- currentSeqLength = 1;
- for (int i = col - 1; i >= 0; i--)
- {
- if ((letters[row, i] - '0') > (currentLetter - '0'))
- {
- currentLetter = letters[row, i];
- currentSequence.Append(letters[row, i]);
- currentSeqLength++;
- }
- else
- {
- break;
- }
- }
- CheckSequence(currentSeqLength);
- currentSequence.Clear();
- currentLetter = letters[row, col];
- currentSequence.Append(letters[row, col]);
- currentSeqLength = 1;
- for (int i = row - 1; i >= 0; i--)
- {
- if ((letters[i, col] - '0') > (currentLetter - '0'))
- {
- currentLetter = letters[i, col];
- currentSequence.Append(letters[i, col]);
- currentSeqLength++;
- }
- else
- {
- break;
- }
- }
- CheckSequence(currentSeqLength);
- currentSequence.Clear();
- currentLetter = letters[row, col];
- currentSequence.Append(letters[row, col]);
- currentSeqLength = 1;
- for (int i = row + 1; i < letters.GetLength(0); i++)
- {
- if ((letters[i, col] - '0') > (currentLetter - '0'))
- {
- currentLetter = letters[i, col];
- currentSequence.Append(letters[i, col]);
- currentSeqLength++;
- }
- else
- {
- break;
- }
- }
- CheckSequence(currentSeqLength);
- }
- }
- var list = alphabeticWords.Keys.ToList();
- list.Sort();
- Console.WriteLine(list[0]);
- }
- static void CheckSequence(int currentSeqLength)
- {
- if (currentSeqLength > maxSeqLength)
- {
- maxSeqLength = currentSeqLength;
- alphabeticWords.Clear();
- alphabeticWords.Add(currentSequence.ToString(), 1);
- currentSequence.Clear();
- }
- else if (currentSeqLength == maxSeqLength)
- {
- if (!alphabeticWords.ContainsKey(currentSequence.ToString()))
- {
- alphabeticWords.Add(currentSequence.ToString(), 1);
- }
- }
- currentSequence.Clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement