tourism is planning to construct a park and install water fountains. It is
planning to organize "Musical Fountain" shows. The fountains shoot water in
air in varying directions and with varying heights. Fountains are to be
installed in a row such that water from all the fountains is visible.
You are given int [ ] height, int [ ] turnOnTime, and int [ ] turnOffTime.
height represents how high each fountain shoots water in air, turnOnTime
represents the time when fountain shoots the water in air and turnOffTime
represents the time when fountain stops shooting the water. Musical
fountain show would be for 30 minutes. Elements in turnOnTime and
turnOffTime will be a number between 1 and 30 inclusive and turnOffTime [ i
] will always be greater than turnOnTime [ i ]. Fountain that shoots water
high in air is to be installed as far as possible. The fountain that shoots
water with less height must be installed in front of the fountain that
shoots water high in air to prevent blocking. A fountain can start shooting
water and other stops at the same minute but still one can block the other.
You should also try to have the fountain with maximum possible height being
first in the park.
You should return a int[ ] which contains the elements of height in the
order you should install fountains to achieve the above goal. The front of
the park is represented by the first element in your return value, and is
where you view the fountains from. The elements in height [ ] will all be
unique
*Definition:*
Class: MusicalFountain
Method: getFountainOrdering
Parameters: int [ ] , int [ ] , int [ ]
Returns: int [ ]
Method signature: int [ ] getFountainOrdering (int [ ] height, int [ ]
turnOnTime, int [ ] turnOffTime) (be sure your method is public)
*Constraints:*
- height will have between 2 and 10 unique elements, inclusive.
- turnOnTime and turnOffTime will have the same number of elements as
height.
- Each element of height will be between 1 and 30 meters, inclusive.
- Each element of turnOnTime and turnOffTime will be between 1 and 30
minutes, inclusive.
- For each element i of turnOnTime and turnOffTime, turnOffTime [ i ] will
be greater than turnOnTime [ i ].
*Examples *
*(1)*
height [ ] = {6, 5, 4, 3, 2, 1}
turnOnTime [ ] = {1, 1, 1, 1, 1, 1}
turnOffTime [ ] = {30, 30, 30, 30, 30, 30}
Returns: {1, 2, 3, 4, 5, 6}
All fountains start at 1st minute and stop at 30th minute. All will block
each other; you must order them from shortest to tallest.
*(2)*
height [ ] = {6, 5, 4, 3, 2, 1}
turnOnTime [ ] = {1, 5, 10, 15, 20, 25}
turnOffTime [ ] = {4, 9, 14, 19, 24, 29}
Returns: {6, 5, 4, 3, 2, 1}
The fountains start and stop at different times so they will never block
each other. You can order them from tallest to shortest.
*(3)*
height [ ] = {6, 5, 4, 3, 2, 1}
turnOnTime [ ] = {1, 5, 10, 15, 20, 25}
turnOffTime [ ] = {5, 10, 15, 20, 25, 30}
Returns: {1, 2, 3, 4, 5}
Each fountain only blocks at most one other, they all must be ordered from
shortest to tallest to prevent any blocking.
*(4)*
height [ ] = {6, 5, 4, 3, 2, 1}
turnOnTime [ ] = {1, 5, 10, 15, 20, 25}
turnOffTime [ ] = {5, 10, 12, 20, 25, 30}
Returns: {4, 5, 6, 1, 2, 3}
Here the 3rd fountain is turned off 3 minutes before the 4th fountain is
turned on. Therefore, we can put the fountain of height 4 first, then
height 5, then height 6 and finally the fountains of height 1, 2 and 3. We
could have also installed them with height 1 first, but this does not
result in the maximum possible height being first in the park.
--
You received this message because you are subscribed to the Google Groups
"Google Code Jam" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-code/-/zgrqVzP_A9kJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-code?hl=en.