Problem11. Poisonous Plants
Отрови ми цял ден. Когато се обхожда Queue докато загинат всички растения работи правилно но бавно. Последните два теста не минават.
Когато пък ми работи бързо, не работи правилно. Гледах и видеото https://youtu.be/z_FhaOUUZ5o на Валентин, ама...
Помагайте, минава шест теста, три не минава:
static void Main()
{
int cnt = int.Parse(Console.ReadLine());
string[] input = Console.ReadLine().Trim().Split(' ');
int previous = int.Parse(input[0]); // first plant
Stack<int> plants = new Stack<int>(); // list of survived plants
plants.Push(previous); // first plant always survive
Stack<int> days = new Stack<int>(); // keep track of days untill plant die
days.Push(0); // will die after 0 days (never)
for (int i = 1; i < cnt; i++)
{
int current = int.Parse(input[i]);
if (current > previous) // plant will die after 1 day
{
days.Push(1);
}
else if (current > plants.Peek()) // plant will die after x days
{
int d = days.Peek() + 1; // if previous plant will die after 1 day
days.Push(d); // current will die after one more day
}
else
{
plants.Push(current); // plant survived
days.Push(0); // 0 for survived plant
}
previous = current; // update previous number for next comparision
}
Console.WriteLine(days.Max());
}