public static void Main()
{
var size =Convert.ToInt32(Console.ReadLine());
var list=new List<string>();
var input = Console.ReadLine();
for (var i = 0; i < size; i++)
{
if (input != null && input.Split(' ').Length > size)
{
Console.WriteLine("Please enter input again");
return;
}
if (input != null) list.Add(input.Split(' ')[i]);
}
var countdays = 0;
list.RemoveAll(x => x == " ");
var listupdate = new List<string>();
var result = Check(true, list, listupdate, countdays).Result;
Console.WriteLine(result);
Console.ReadLine();
}
private static async Task<int> Check(bool flag, List<string> list, List<string> listupdate,int countdays)
{
return await Task<int>.Factory.StartNew(() =>
{
while (flag)
{
if (list.Distinct().Count() == 1)
{
break;
}
for (var i = 0; i < list.Count - 1; i++)
{
if (list[i] != " ")
{
if (Convert.ToInt32(list[i]) - Convert.ToInt32(list[i + 1]) > 0)
{
if (i == 0)
{
listupdate.Add(list[i]);
listupdate.Add(list[i + 1]);
}
else
{
listupdate.Add(list[i + 1]);
}
}
else
{
if (i == 0)
{
listupdate.Add(list[i]);
}
else if (Convert.ToInt32(list[i]) - Convert.ToInt32(list[i + 1]) == 0)
{
listupdate.Add(list[i + 1]);
}
}
}
}
if (list.Count == listupdate.Count)
{
flag = false;
}
else if (list.Count == 1)
{
flag = false;
}
else if (listupdate.Count == 0)
{
flag = false;
}
else
{
countdays++;
}
list.Clear();
list = listupdate.ToList();
listupdate.Clear();
}
return countdays;
});
}
{
var size =Convert.ToInt32(Console.ReadLine());
var list=new List<string>();
var input = Console.ReadLine();
for (var i = 0; i < size; i++)
{
if (input != null && input.Split(' ').Length > size)
{
Console.WriteLine("Please enter input again");
return;
}
if (input != null) list.Add(input.Split(' ')[i]);
}
var countdays = 0;
list.RemoveAll(x => x == " ");
var listupdate = new List<string>();
var result = Check(true, list, listupdate, countdays).Result;
Console.WriteLine(result);
Console.ReadLine();
}
private static async Task<int> Check(bool flag, List<string> list, List<string> listupdate,int countdays)
{
return await Task<int>.Factory.StartNew(() =>
{
while (flag)
{
if (list.Distinct().Count() == 1)
{
break;
}
for (var i = 0; i < list.Count - 1; i++)
{
if (list[i] != " ")
{
if (Convert.ToInt32(list[i]) - Convert.ToInt32(list[i + 1]) > 0)
{
if (i == 0)
{
listupdate.Add(list[i]);
listupdate.Add(list[i + 1]);
}
else
{
listupdate.Add(list[i + 1]);
}
}
else
{
if (i == 0)
{
listupdate.Add(list[i]);
}
else if (Convert.ToInt32(list[i]) - Convert.ToInt32(list[i + 1]) == 0)
{
listupdate.Add(list[i + 1]);
}
}
}
}
if (list.Count == listupdate.Count)
{
flag = false;
}
else if (list.Count == 1)
{
flag = false;
}
else if (listupdate.Count == 0)
{
flag = false;
}
else
{
countdays++;
}
list.Clear();
list = listupdate.ToList();
listupdate.Clear();
}
return countdays;
});
}
No comments:
Post a Comment