Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace lab7.Pyramidic
- {
- class Program
- {
- static void Main(string[] args)
- {
- int n = int.Parse(Console.ReadLine());
- List<string> saveLines = new List<string>();
- var result = new Dictionary<string, int>();
- for (int i = 0; i < n; i++) //save all inputs
- {
- string inputSequence = Console.ReadLine();
- saveLines.Add(inputSequence);
- }
- int index = 1;
- for (int row = 0; row < saveLines.Count; row++) // start to iterate all letters and save the pyramidic
- {
- for (int column = 0; column <saveLines[row].Length; column ++)
- {
- string letter = saveLines[row][column].ToString();
- int size = CountPiramid(saveLines, index, letter);
- if (!result.ContainsKey(letter))
- {
- result.Add(letter, size);
- }
- else
- {
- if(result[letter] <= size)
- {
- result[letter] = size;
- }
- }
- }
- index++;
- }
- foreach(var res in result //output the biggest pyramidic
- .OrderByDescending(x =>x.Value)
- .Take(1))
- {
- String letter = res.Key;
- String save = letter + letter;
- int size = res.Value;
- for (int i = 0; i < size; i++)
- {
- Console.WriteLine(letter);
- letter += save;
- }
- }
- }
- static int CountPiramid(List<string> inputs,int index,string letter) // method find the size of pyramidic
- {
- string saveLetter = letter;
- int counter = 1;
- for (int i = index; i < inputs.Count; i++)
- {
- if (inputs[i].Contains(IncreaseLetter(letter, saveLetter)))
- {
- counter++;
- letter = letter + saveLetter + saveLetter;
- }
- else
- {
- break;
- }
- }
- return counter;
- }
- static string IncreaseLetter(string letter,string saveLetter) //method increase letter(on each row increasing) the base of pyramidic
- {
- letter = letter + saveLetter + saveLetter;
- return letter;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment