TLE '17 December Contest


Welcome to the fourth Thorndeau Logic Evaluation of the 2017-18 school year!

The problem writers/testers of this round are kobortor, ZQFMGB12, and d.

The TLE will be a 3-hour virtual contest, which will allow contestants to participate in any 3-hour window between 12:00 PM EST, December 22, 2017 and 12:00 PM EST, December 23, 2017. Of course, it is forbidden to use two accounts to participate, and it is also forbidden to discuss the problems and/or their solutions with other people during the entire contest period.

The contest will use a pretest/systest format for problems 4-6. When you submit to these problems, you will only be judged on some of the test data, called pretests. After the contest, all submissions will be rejudged on the full test data. Pretests typically contain weak test data and do not include maximum or corner cases.

This contest will be rated for all participants who submit at least once.


Before the contest date, you may wish to check out the tips and help pages.

The contest consists of 6 questions with a wide range of difficulties, and you can get partial marks for partial solutions in the form of subtasks. If you cannot solve a problem fully, we encourage you to go for these partial marks. The difficulty of a problem may be anywhere from CCC Junior to CCO level. It is highly recommended to read and attempt all of the problems. You will have 3 hours to complete the contest. After the contest window begins, you may begin at any time. Your personal timer will start counting down, and you will be able to submit until 3 hours from when you started, or until the hard deadline (December 23, 12:00 PM EST), whichever comes first.

After joining the contest, you proceed to the Problems tab to begin. You can also go to Users if you wish to see the rankings.

We have listed below some advice as well as contest strategies:

  • Start from the beginning. Ties will be broken by the sum of times used to solve the problems starting from the beginning of the contest. The last submission time of your highest score will be used.
  • Remove all extra debugging code and/or input prompts from your code before submitting. The judge is very strict — most of the time, it requires your output to match exactly.
  • Do not pause program execution at the end. The judging process is automated. You should use stdin / stdout to perform input / output, respectively.
  • It is guaranteed that all the problems will be solvable with C++.

At the end of the contest, you may comment below to appeal a judging verdict. In the case of appeals, the decision(s) of our staff is final.



Comments


  • 2
    kedrist  commented on Dec. 27, 2017, 7:51 a.m.

    What options is C++ compiled with ?


    • 0
      Kirito  commented on Dec. 27, 2017, 3:01 p.m.

      Information about all runtimes can be found here.


      • 0
        kedrist  commented on Dec. 28, 2017, 7:56 a.m.

        So you guys don't use "-O2". Hmm, that's odd. Any specific reason why ?


        • 2
          Kirito  commented on Dec. 28, 2017, 7:57 p.m. edited

          My apologies; apparently the run time page is no longer the same was I remember it being.

          The exact compile flags are -DONLINE_JUDGE -Wall -O2 -lm, as can be found here.


  • 0
    reda2002  commented on Dec. 24, 2017, 8:07 p.m.

    i submited during the contest and i had 5 in pascal tree and 20 in target problem where are my points now


    • 3
      wleung_bvg  commented on Dec. 24, 2017, 9:13 p.m. edited

      This contest used something called pretests where your submission is only tested on a few of the test cases during the contest. After the contest finished, your submission is tested on the remaining test cases (system tests). Your score was likely lowered because while your code passed some of the pretests, it did not pass the system tests. You can read more about their system here: https://dmoj.ca/help/pretests/. (Note that they no longer use the scaling factor of 10)


  • -3
    TimothyW553  commented on Dec. 23, 2017, 11:48 p.m.

    I love the sudden decrease in users from P1 to P4 and then P5 just has 73...


  • 1
    println_hi_  commented on Dec. 23, 2017, 4:42 p.m.

    Why is it that for penalty time the last submission of our highest scoring submissions will be used, not the first time one of our submissions got our highest score?


    • -1
      xyz2606  commented on Dec. 24, 2017, 1:19 a.m.

      because there is no penalty for wrong submissions


  • 0
    rpeng  commented on Dec. 23, 2017, 3:23 a.m.

    What's the relative performances of cin/cout versus scanf/printf? The instructions are saying cin/cout, but I'm getting much faster times with scanf/printf. I think something similar happened with https://dmoj.ca/problem/dmopc17c3p4 as well, but I can't dig up the logs to verify at the moment (probably due to the ongoing contest).


    • 0
      kedrist  commented on Dec. 25, 2017, 11:38 a.m. edit 2

      I did a little benchmarking on this problem on SPOJ. It contains only integers though.

      Here are the results -

      • scanf/printf - 0.24
      • cin/cout(without optimization) - 1.60
      • cin/cout(with optimization) - 0.19
      • fast I/O - 0.05

    • 1
      aeternalis1  commented on Dec. 23, 2017, 3:27 a.m. edit 2

      The tips page suggests C++ users to use scanf and printf over cin and cout.


      • 0
        rpeng  commented on Dec. 24, 2017, 9:31 p.m.

        The advice given at the top of this page (Last sentence of third to last point) says the opposite though :-(.


        • 1
          jkguipqnjcy49979693  commented on Dec. 24, 2017, 10:09 p.m. edit 6

          Assuming you are referring to "You should use stdin / stdout to perform input / output respectively"... I'm confident that is intended to mean that the input/output is not from any file but from the Standard Input/Output Streams, what would normally be I/O on the console, I think.

          scanf and cin (by default) read from stdin, etc.


          In general, if you are going to use scanf and printf, feel free to - they should be fast enough; If you want to use cin/cout then it is recommended to add

          ios_base::sync_with_stdio(0); cin.tie(0);
          

          to the beginning of your main function.

          (In order to prevent TLEing on problems that require excessive output, you should not flush out each line with endl but use '\n' instead, when using cin/cout.)


  • 0
    YessineJallouli  commented on Dec. 21, 2017, 11:42 a.m. edited

    and python ???