JUNL - BHAAD MEI JAAO

no tags 

You are on vacation on a drunken island, but you couldn't resist the temptation of solving a good old problem. It all started when a group of kids played a game they call "The Falling Coconuts". In this game, a number of coconuts fall to the ground, one by one, on a single axis, at the locations given in drops. If a coconut X lands on the ground, it remains where it is. If it lands on top of another coconut Y, one of the following things happens:

If coconut Y is surrounded on both sides by coconuts (denoted by 'O'), coconut X remains where it is.

     X
    OYO

If there is no coconut directly to the right of coconut Y, coconut X slides down to the position directly to the right of coconut Y.

     X
    OY   ->  OYX
     X
     Y   ->   YX

If there is a coconut directly to the right of coconut Y, but no coconut directly to the left of coconut Y, coconut X slides down to the position directly to the left of coconut Y.

    X
    YO  ->  XYO

Each time coconut X slides down to a different position, it will continue to slide (following the behavior outlined above) until it's in a place where it will not slide any further.

The task is to display the final coconut configuration.

Input

First line is t = number of test cases.

Each test case consists of 2 lines, first line conataining the number of coconuts and second line contains n integers denoting the position of each coconut on the x-axis.

Output

As described in the problem statement.

Example

Input:
2
8
8 9 10 11 12 8 12 10
10
6 8 10 7 9 8 8 8 8 8

Output:
---O---
OOOOOOO
--O---
-OOO--
OOOOOO

Explanation of test case 1:

The configuration after each fallen coconut is given below:

X  ->  OX  ->  OOX  ->  000X  ->  0000X  ->  X00000  ->  000000X  ->  0000000

In this diagram, 'X' denotes the last fallen coconut.


hide comments
Nitin Khanna: 2012-10-16 15:51:43

Can someone please explain the output sequence of second testcase?

:D: 2012-10-16 10:59:36

Yes, on top of what Jared had written, print an empty line after each test case. I don't know if exact judge is used though, so maybe white space do not matter.

Also CounterinsurgectoR:
Correct the output description, don't just throw the text on SPOJ!

theycallhimavi: 2012-10-15 09:00:47

Very well put jared.. :)

Jared Deckard: 2012-10-14 17:35:41

Initial position: 0 ≤ Pi ≤ 18
Resting position: 0 ≤ Ri ≤ 26

Output:
Do not print any columns before the first coconut or after the last coconut.
Do not print any rows above the highest coconut.
Print 'O' if any position contains a coconut.
Print '-' if any position is empty.

Last edit: 2012-10-14 17:37:01
Pranay: 2012-10-14 06:06:40

do we need to print '-' too ?

Alex Anderson: 2012-10-13 14:02:58

The output description is strange and is compounded by the blank lines. Remove the blank lines between the first two outputs, and remove the lines between the final 3 outputs, and it will make more sense.

Naman: 2012-10-13 10:37:39

You can assume n<100

Snehasish Roy ;): 2012-10-12 19:33:53

Output description is not clear :D


Added by:Aradhya
Date:2012-10-12
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:AVIRAL,YASH,AMAN,ARADHYA