STPAR - Street Parade

For sure, the love mobiles will roll again on this summer's street parade. Each year, the organisers decide on a fixed order for the decorated trucks. Experience taught them to keep free a side street to be able to bring the trucks into order.

The side street is so narrow that no two cars can pass each other. Thus, the love mobile that enters the side street last must necessarily leave the side street first. Because the trucks and the ravers move up closely, a truck cannot drive back and re-enter the side street or the approach street.

You are given the order in which the love mobiles arrive. Write a program that decides if the love mobiles can be brought into the order that the organisers want them to be.

Input

There are several test cases. The first line of each test case contains a single number n, the number of love mobiles. The second line contains the numbers 1 to n in an arbitrary order. All the numbers are separated by single spaces. These numbers indicate the order in which the trucks arrive in the approach street. No more than 1000 love mobiles participate in the street parade. Input ends with number 0.

Output

For each test case your program has to output a line containing a single word "yes" if the love mobiles can be re-ordered with the help of the side street, and a single word "no" in the opposite case.

Example

Sample input:
5
5 1 2 4 3 
0

Sample output:
yes

Illustration

The sample input reflects the following situation:

The five trucks can be re-ordered in the following way:


Added by:Patryk Pomykalski
Date:2004-07-01
Time limit:1s-2s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: NODEJS PERL6 VB.NET
Resource:Swiss Olympiad in Informatics 2004

hide comments
2016-05-24 10:27:58 Dilpreet
The output is "yes" and "no" and not "Yes" and "No" beware of that
costed me 4 WAs.

Best of luck!
2016-05-14 14:42:14 Rishabh Gupta
thank u everyone for posting important test cases :) ....helped a lot
really nice stack implementation
AC after 1 SIGSEGV :(
2016-05-12 19:30:53
what is the meaning of inputs end at 0???
2016-05-12 18:05:09
AC in 3rd go...mistake...unfortunately declare stack in globally....My 34th
2016-05-12 16:48:27 Ishwar
solved like a pro with 5-6 hours of critical thinking. but got WA beacuse of taking input only one time.
input ends with 0 means , your program should keep asking inputs for more than one test case. for example
5
1 2 3 4 5
yes
4
1 2 3 4
yes
0
exit
2016-05-09 15:54:22
best to learn stack
2016-05-07 11:12:14
Can I know in which test I wrong answer??? If can, how? Please help me?
2016-05-07 00:51:11
AC in one go :-) I'm a total beginner and don't have a clue what stacks are and how to use them. I did it by using lists (C#) and careful adding/removing trucks between two lists. Altho this approach seems kinda brute forceish... I now deeply suspect there is a much, much shorter method to check if the trucks can be arranged without actually arranging them (which my current brute program is doing)...
2016-04-26 01:54:56
So I printed "Yes" instead of "yes". Got WA. Take care of that. It's case sensitive.
Nice test cases given in the comments. Really helped in debugging.
2016-04-09 14:27:02
i am getting a tle ,not able to understand why ,have only used one stack and 2 arrays and is giving correct answers to all the test cases posted in comments?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.