CCC '17 S2 - High Tide, Low Tide

View as PDF

Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 256M

Problem type
Canadian Computing Competition: 2017 Stage 1, Senior #2

Joe Coder is camping near the Bay of Fundy between Nova Scotia and New Brunswick. When he arrived at the bay, he was told that the difference in height between high tide and low tide at the Bay of Fundy was the largest tidal difference in the world. Ever the skeptic, Joe decided to verify this. He chose a reference point and, after learning from the radio when the tides were highest and lowest, he went with a boat to his reference point and measured the depth of the water. Unfortunately, on the last day of his trip, a strong wind scattered his measurements.

Joe has recovered all of his measurements, but they may not be in their original order. Luckily, he remembers some things about his measurements:

  • He started measuring water levels at a low tide, his second measurement was of the water level at high tide, and after that the measurements continued to alternate between low and high tides.
  • All high tide measurements were higher than all low tide measurements.
  • Joe noticed that as time passed, the high tides only became higher and the low tides only became lower.

Given Joe's measurements in no particular order, you must reconstruct the correct order in which the measurements were taken.

Input Specification

The first line contains the integer N (1 \le N \le 100). The next line contains N distinct space-separated positive integers, where each integer is at most 1\,000\,000.

Output Specification

Output the N integers in the unique order that Joe originally took the measurements.

Sample Input

10 50 40 7 3 110 90 2

Sample Output

10 40 7 50 3 90 2 110

Explanation for Sample Output

The low tide measurements (in order) were 10, 7, 3, and 2.
The high tide measurements (in order) were 40, 50, 90, and 110.


  • 2
    QooModa  commented on May 12, 2022, 1:31 p.m.

    Would someone please help with my code?

    The WA says that my output is rendering a one digit integer in the last record of all answers.

    Have no idea why.


  • 1
    X_star12321  commented on April 15, 2022, 5:26 p.m. edited

    sorry if this is a dumb question but how should the output be if there are an odd number of tides e.g if the input was 5, then a b c d e where a<b<c<d<e, would the output be a e b d c c?

    • 0
      KevinYangJ8  commented on May 23, 2022, 1:55 p.m. edit 3

      If you haven't figured out: he started with the low tide, so if the number of input is odd, then the median is the low tide. In your case, it should be cdbea

  • 0
    Brian_Li23  commented on Feb. 4, 2021, 11:48 a.m.

    If anyone completed this question already, can anyone see why I got case 9, 14, 16 wrong? I can't seem to find the issue. Is it simply because my method of solving is wrong?

    • 2
      Badmode  commented on Feb. 4, 2021, 12:33 p.m.

      Your code does not work with this test case:

      50 90 60 1 5

      round() should not be used for this question - try creating an if else statement that checks if there is an even or odd amount of tides.

      Hopefully this answers your question.

      • -1
        Brian_Li23  commented on Feb. 4, 2021, 2:58 p.m. edited

        Yep, I see the error now. Your suggestion helped me solved the problem.

        (Turns out 2.5 will round to 2 in python 3)

        • 4
          cabbagecabbagecabbage  commented on Feb. 4, 2021, 5:16 p.m.

          just to prevent misinformation, 2.5 does indeed round to 2 in python 3 - the round function rounds .5's to the nearest even integer.

  • 6
    theskyrage  commented on Feb. 20, 2019, 9:22 a.m.

    Having trouble with 5 of the test cases where my output is starting with high tide instead of low tide as it should. I took the outputted numbers, (assuming that they are the same numbers just in different order) and ran it through my program locally and through online compilers. They are giving me the correct order where output starts with low tide then high tide. Can anyone look at my code and see where I might have gone wrong?

    • 3
      sohomsaha  commented on Sept. 17, 2019, 12:23 a.m.

      fixed the issue, whenever it is an odd number, the start and end of your output always need to be low tides, it cannot start and end with high tides

    • -3
      sohomsaha  commented on Sept. 17, 2019, 12:01 a.m.

      the same issue with me, I got 5 wrong and all set of numbers worked fine for my outputs, but on here the output shows the high and low tides switched

  • 24
    andrewfeng123  commented on Jan. 24, 2019, 11:41 p.m.

    The number of tides can be an odd number, be careful!

  • 1
    Evan_Real  commented on Nov. 7, 2018, 10:07 p.m. edited

    Low tide first...

    • 1
      Haoyun  commented on May 19, 2022, 9:58 a.m.

      When people leave a comment like this it should be a joke or something wrong in the problem, but this time I do not understand it and I think that I am not the only one.

    • 1
      magicalsoup  commented on Nov. 7, 2018, 10:19 p.m.

      then you print the lowest tide at the end