Are only students allowed to participate?

No, everybody may participate. It does not matter if student, or not.

When will the problems be made public?

Each problem will be made public at 9:00 am (Passau local time). The first problem starts on 2023-12-01, the last one on 2023-12-24.

Do I have to solve a problem within 24h?

No, all problems can be solved until the end of the year. The time of the submission does not influence your score.

How will the winner be determined if there is a tie?

If there are several participants with the same score in the end, the first three places will be determined by a jury.

Which criteria does the jury take into account?

The jury will focus on these criteria:

  • Code-Style: Your code should be readable and comprehensible. Meaningful identifiers and a good structure might help!
  • Comments: Few well-placed comments can help the jury understand your program. However, nobody wants to read page-filling documentation. If you found an especially clever algorithm or solution, you may of course explain it in more detail.
  • Sophistication: Submissions which are particularly efficient or need very little code always impress the jury! Remember that your code should still be readable.

If needed, the jury can take other aspects of your submission into account.

How are points awarded?

Depending on the problem, points are awarded either static, or dynamic. Furthermore, there are problems for which criteria additional to passing all testcases must be fulfilled.

Static score

Each problem has several testcases with which your submission is evaluated. Each testcase values a specific number of points. A problem with four testcases with each 25 points values 100 points in total. If the submission passes three of the testcases, it is awarded with 75 points. The total score of a participant results from the sum of his best submission for each task.

Dynamic score

Each problem has several testcases with which your submission is evaluated. The problem values up to 100 points depending on the number of solved testcases. The more participants solve the problem, the less points can be achieved.
The score is calculated like this:

Total submissions (one per participant) for the problem: total
Correct submissions (one per participant) for the problem: solved
The submission factor (between 1 and 0) based on the solved testcases: sf
Minimum points for a solved problem: 50
Maximum points for a solved problem: 100
Fraction of correct solutions: sr = solved / total
Problem factor: cf = 50 + (100 - 50) * (1 - sr)

Then, the score is: Score = sf * cf


Will I get points for partially solved problems?

Yes, even if you fail some testcases, you will get points for the testcases you passed. The submission with the most points scored counts for your total score.

Program Execution

What is the "Compiler Status"?

The compiler status is a number returned to the system by the compiler after compiling the program. A value of 0 signals that there were no problems. Other values suggest an error during compilation.

What is the"Program Status"?

The program status is a number returned to the system by the program after finishing execution. A value of 0 signals that the program terminated ordinary.Other values suggest a crash or another error.

What limitations has my program?

Your program has a memory limit of 100 megabyte and a time limit of 60 seconds per testcase. To ensure a fair competition you should renounce any "creative" submissions as an error in the evaluation system has a negative effect on all participants.

How long is my program allowed to run?

Your program may use up to specific amount runtime per testcase, which is language dependent. You can find the values in list of supported languages. If this value differs for a task, if will be noted in the description.

How much memory may my program use?

Your program may use up to a specific amount of memory for each testcase, which is languages dependent. You can find the values in list of supported languages. If this value differs for a task, if will be noted in the description.

How is the input sent to my program?

When a testcase is evaluated, your program gets its input from the standard input (STDIN), that is similar to typing the input on the keyboard. After all input data has been sent, the standard input gets closed with an "End Of File" (EOF). Your program has to evaluate the input, calculate a result and finally output the result.

How should my program output its results?

Your program has to evaluate the input, calculate a result and output that result. The output must be sent to the standard output (STDOUT). As a linebreak either \n (newline) or \r\n (carriage return & newline) may be used. Be aware that often a linebreak is needed also after the last line of output!

How can I implement in-/output in my favourite programming language?

We have created several example programs, which demonstrate in- and output in some popular programming languages.

What programming languages are supported?

You can submit solutions in C, C++, C#, Go, Haskell, Java, Javascript, Perl, PHP, Python, Rust, Scala and many more languages. You can find the full list in our language overview .
Your submission must consist of one single file. If not stated otherwise, you have only the possibilities provided by the languages' standard library.

Can you install library X for programming language Y?

No! In principle, we only provide the standard library for all languages in order to ensure that each language is about equally useful. To lift all languages to a comparable level by installing libraries would be too difficult: How would you port the functionality of numpy to COBOL, Fortran or TCL? That is why we restrict each language to its standard library. Anyway, where would be the fun if the solution for each problem was simply calling a library function?

You can have a look at the list of supported languages for information which features are supported and which versions are installed.

Program Evaluation

Why are some testcases marked as "private"?

There are several reasons why not all testcases are visible to the public: First, we need to prevent that the solutions are calculated manually and are then hardcoded into the program. Second, the private testcases often check special and cornercases, which are not covered by the public testcases.

Why does it take so long to evaluate my submission?

If many participants submit a solution at once it may take some time to evaluate all tasks. Please be patient if that happens. If you still have no result after 15 minutes you may contact us.

Evaluation Status

What does the status "Solution contains errors" mean?

Your submission did not pass one or more testcases. Carefully check the list of testcases again and rework your solution

What does the status "Submission is under evaluation..." mean?

Your submission is still under evaluation by the system, therefore there is no result available yet. Perhaps some testcases are already completed.

What does the status "Wrong output" mean?

The output of your program does not match the expected result. Before starting debugging, check if you missed a linebreak as this is a very common error.

What does the status "Testcase under evaluation"?

To completely solve a problem all testcases must be passed. Testcases which are under evaluation are not processed yet. If there still is a testcase under evaluation 15 minutes after your submission, please contact us.

What does the status "Runtime error in the program" mean?

If your program crashes or returns an error message the testcase is considered as failed. You should identify the problem using the error message and fix your program accordingly. A runtime error can also occur if your program runs out of memory.

What does the status "Runtime limit exceeded" mean?

If a testcase has this status, your program exceeded the runtime limit and therefore was killed. If you encounter this error you should find a more efficient implementation or algorithm.

What does the status "Compilation error" mean?

Somehow your program could not be processed by the compiler. Please check the compiler output or errors. If you can compile your program with the standard distribution of the used language and you believe that the error is caused by our system, please contact us.

Why are scripting languages compiled?

Everybody knows that scripting languages are not compiled, however we still do it - to be more specific, we parse the program. If this yields an error, this is not considered an erroneous submission but a "compiler error".

I have a problem! / My question wasn't answered!

If you have a question or remark regarding a problem, you can contact us via the question-form below the problem description. Be aware that we can not always answer questions regarding a problem or its implementation.

You can also write us an email: adventskalender@ieee.uni-passau.de. We are always glad to receive remarks or bug reports.