## 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.

• commented on Dec. 30, 2017, 10:33 p.m.

Ratings

When will our ratings for this contest be updated?

• commented on Dec. 30, 2017, 11:23 p.m.

Now, it would appear.

• commented on Dec. 30, 2017, 11:45 p.m.

Yeah, it has. Thanks :)

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

What options is C++ compiled with ?

• commented on Dec. 27, 2017, 10:01 a.m.

Information about all runtimes can be found here.

• commented on Dec. 28, 2017, 2:56 a.m.

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

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

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.

• commented on Dec. 26, 2017, 9:19 p.m.

There is a bug with one of the DMOJ checkers which is preventing us from rejudging P6, but nobody is bothering to fix that bug.

• commented on Dec. 26, 2017, 10:43 p.m. edit 2

Can't you just assume that if the output contains Nan at all then it's wrong?

• commented on Dec. 24, 2017, 3: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

• commented on Dec. 24, 2017, 4: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)

• commented on Dec. 24, 2017, 10:19 a.m.

Can anybody see P6 ? For me it's saying "Could not find a problem with the code "tle17c4p6".

• commented on Dec. 24, 2017, 10:44 a.m.

P6 has been made private due to a bug with the checker being used; namely printing nan will give you a full AC. This will be fixed in the near future, and the problem will be made public then.

• commented on Dec. 23, 2017, 6:48 p.m.

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

• commented on Dec. 23, 2017, 11:42 a.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?

• commented on Dec. 23, 2017, 8:19 p.m.

because there is no penalty for wrong submissions

• commented on Dec. 22, 2017, 10:23 p.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).

• commented on Dec. 25, 2017, 6:38 a.m.

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
• commented on Dec. 22, 2017, 10:27 p.m. edited

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

• commented on Dec. 24, 2017, 4:31 p.m.

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

• commented on Dec. 24, 2017, 5:09 p.m. edit 2

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" https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin), what would normally be I/O on the console, I think.

scanf and cin (by default) read from stdin (http://www.cplusplus.com/reference/cstdio/stdin/, http://www.cplusplus.com/reference/cstdio/scanf/, http://www.cplusplus.com/reference/iostream/cin/, ), etc.

In general, if you are going to use scanf and prinf, 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.)

• commented on Dec. 21, 2017, 8:36 a.m.

Staring in 1 day 03:26:53

• commented on Dec. 21, 2017, 6:42 a.m. edited

and python ???

• commented on Dec. 21, 2017, 7:07 p.m. edit 2

The language speed difference only becomes significant for the last couple of problems. Even then, TLE happens to be nice because (from what I can tell) d tries out many problems with PyPy, and I remember seeing ZQFMGB12's submissions to Java in one of his problems etc.

[Also, r3mark and Kirito also used to use Java often enough that DMOPC contests are fine as well, perhaps even better as far as language fairness is concerned.]

Furthermore, I can confirm that all of the following TLE problems have AC solutions in Python (PyPy/Python 2/3) or Java (8/9/10) as of now:

Contest# : Problems

C 1: 1, 2, 3, 5

C 2: 1, 2, 3, 5

C 3: 1, 2, 3, 4, 5

Now, given that for all 3 TLE contests, a score of 400+ has meant a top 10 score, your choice of language is hardly a limitation tbh.