MORENA - Morenas Candy Shop ( Easy )

no tags 

HARDER VERSION: www.spoj.com/problems/HILO/

Brunette's is a big candy shop from Little Campina in Paraibas, Brazil. This company is known for making the best candies in the world. Matheus Pheverso is the president of this company and he has a sister called Morena who loves and helps him in running the company. She uses to go the supermarket every day and buy a lot of stuffs to make all the candies. But she's insane and likes to take an alternate path to go to the supermarket.

Given the streets heights, a path is alternate only if the differences between successive numbers strictly alternate between positive and negative.

Example:

- Street Heights: {1, 3, 4, 5, 2, 9, 8, 10}

- Alternate Paths: {1, 3, 2, 9, 8}, {1, 4, 2, 8} {1, 5, 2, 9, 8}

Matheus Pheverso is a friendly brother and he would like to know the longest alternate path between the first supermarket and the last supermarket, this means that his sister always starts at the supermarket number 1, and always ends at the last supermarket.

Given the number of supermarkets, and their heights, your task is to print the longest alternate path between the first and the last city.

Input

There is a single positive integer N on the first line of input (1 <= N <= 10^6) representing the number of supermarkets. In the second line there're N integers Ai representing the heights of each supermarket (-10^18 <= Ai <= 10^18).

Output

You have to print the longest alternate path between the first and the last supermarket. The supermarket number 1 is always the first, and the supermarket number N is always the last one.

Example

Input:
5
1 2 3 4 5

Output
2
Input:
8
1 4 2 10 1 9 7 8

Output
8

hide comments
amanharitsh: 2019-10-30 18:59:53

O(N) solution in python throws TLE :/
PS: Same algo in c++ gets an AC

Last edit: 2019-10-30 19:00:56
enigmus: 2019-08-17 01:01:24

be sure to test these inputs: [1, 1, 2, 2, 3, 3] and [1, 1, 3, 3, 2, 2].

Also, I noticed that 2 <= N <= 10^6

Last edit: 2019-08-17 01:03:29
DOT: 2018-08-26 20:16:51

For the given time limit, O(n^2) approaches are kind of an overkill and bound to TLE and there is a wonderful O(n) solution. Keep in mind the numbers range is -10^18-10^18 and confirm while checking the best answer the sequence contains the last element.

sri_vatsal: 2018-06-22 12:48:07

Can anybody help with DP approach, please? O(n^2) dp ensued TLE.

Last edit: 2018-08-23 14:45:39
hunnychauhan: 2017-07-14 13:42:17

no change for 0(same street heights)
but sign alternates after 0 ,if present

suraj: 2016-06-18 15:33:10

got WA in 9 test case, can someone explain me 1 should be first and n should be last in every test case ya position can be change

suraj: 2016-06-18 15:25:34

@ryuga you can't change sequence

ryuga777: 2016-06-11 11:18:19

can anyone explain the sample cases as since the ouptut in second case is 8... so shouldn't the output of the first case will be 3 as - 1 3 2 4 5

rohith: 2014-12-30 17:19:12

@shanmukh yep it is awesome ;P

:(: 2014-12-30 09:41:57

Awesome problem :)
You should use an O(n) algo :D

Last edit: 2014-12-30 09:42:29

Added by:Mateus Dantas [ UFCG ]
Date:2012-09-11
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64