Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class Program
- {
- static void Main()
- {
- var longestLength = 0;
- var longestSequence = new List<int>();
- var arr = Console.ReadLine().Split().Select(int.Parse).ToList();
- for (int i = 0; i < arr.Count; i++)
- {
- var sequence = checkSequence(arr, i);
- if (sequence.Count > longestLength)
- {
- longestLength = sequence.Count;
- longestSequence = sequence;
- }
- }
- if (arr.Count == 1)
- {
- Console.WriteLine(arr[0]);
- }
- else
- {
- Console.WriteLine(string.Join(" ", longestSequence));
- }
- }
- private static List<int> checkSequence(List<int> arr, int startPosition)
- {
- List<int> lis = new List<int>();
- var minNumber = arr[startPosition];
- var indexOfMinNumber = arr.IndexOf(minNumber);
- lis.Add(minNumber);
- for (int i = ++indexOfMinNumber; i < arr.Count; i++)
- {
- if (arr[i] > minNumber)
- {
- if (checkIfThereIsLowerNumber(arr, i, minNumber))
- {
- continue;
- }
- else
- {
- lis.Add(arr[i]);
- minNumber = arr[i];
- }
- }
- else
- {
- continue;
- }
- }
- return lis;
- }
- private static bool checkIfThereIsLowerNumber(List<int> arr, int position, int minNumber)
- {
- for (var i = position; i < arr.Count - 1; i++)
- {
- if (arr[position] > arr[i + 1] && arr[i + 1] > minNumber)
- {
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement