Checklist Slovak AI Olympiad 2026 National Round · Task 3
About Cinderella
English title: O Popoluške
Use a given variational autoencoder of handwritten digits to find, count and read the handwritten letters hidden among 10,000 digit images.
The task
Cinderella's stepmother has mixed images of handwritten letters into 10,000 images of handwritten digits (PNG, numbered 0000–9999). A variational encoder and decoder trained on the stepmother's digits is provided with example code (anomaly.py).
Subtask 1 (5 pts): percentage of binary images. Subtask 2 (10 pts): maximum reconstruction error (mean squared pixel difference) of the autoencoder over the mixture, to five decimal places. Subtask 3 (60 pts): label each image as digit (0) or letter (1). Subtask 4 (5 pts): number of letters. Subtask 5 (20 pts): which letter each letter image shows (space for digits).
Abridged by SOTA from the official materials. The official statement has the exact rules, and it wins wherever this summary differs.
In English
Some of this task's files were published only in Slovak. SOTA translated that file into English on 17 September 2026.
Read the task statement in English
National Round Task 3: About Cinderella
English translation by SOTA – AI Community of the Slovak original, Uloha3_Popoluska.pdf ("CK Úloha 3: O Popoluške"; CK = celoštátne kolo, national round), from the Olympiáda v umelej inteligencii (Slovak Olympiad in Artificial Intelligence), 2025/26. The original task belongs to its authors. Organisers who would like this translation removed can email [email protected].
[Figure: see the original statement.]
When the royal ball was being prepared, the stepmother said:
"Cinderella, I have spilt a tensor of letters into the tensor of handwritten digits. If you sort it out within two minutes, you may come with us."
The girl went out through the back door into the garden and called:
"Little pigeons, turtle doves and all you little birds under the sky, fly to me and help me sort:
the digits you leave in the tensor, the letters go into your little beaks."
Then two doves flew to the window, the turtle doves after them, and finally all the little birds of the sky came flocking down. They sat down around the stepmother's tensor and began to pick out the letters with their little beaks. Because they already had an autoencoder of digits at their disposal, everything was sorted before the two minutes had passed. It was lucky that the stepmother had not mixed into the tensor letters such as O, which would have been indistinguishable from digits such as 0.
Start from the notebook anomaly.ipynb
In it you will find code to download the stepmother's tensor and the model of a convolutional variational autoencoder of digits. Solve the following tasks:
-
Compute the maximum reconstruction error of the given autoencoder applied to the symbols in the stepmother's tensor. For a symbol (in which the pixels have values from 0 to 1), the error is computed as the mean of the squares of the differences between the values of corresponding pixels in the input and in the output of the autoencoder. Print it to at least four decimal places. (10 points)
-
Find (by any means) the list of indices of the letters in the stepmother's tensor, sorted from the smallest to the largest. For each correct index you receive a proportional share of 60 points. However, for each index at which there is not a letter but a digit, you receive -1 point; even in the worst case, though, only to the extent that you have 0 points in total for this whole subtask.
-
Print the number of letters in the tensor. (max. 10 points, depending on the deviation from the true count; some points can be obtained even for an estimate)
-
Print the string of letters in the order in which they follow one another in the stepmother's tensor. (max. 20 points, depending on the length of the longest common subsequence with the correct answer).
Hint: when Cinderella took a closer look at the letters, she found that this subtask is easier than it seems at first sight.
You submit the notebook with its outputs; mark the answers to questions 1-4 clearly. When scoring the subtasks, the graders may also award points beyond those earned by the result, for example if the result is incorrect but the idea is correct.
Translated by SOTA. The Slovak original is the official version and wins wherever the two differ. This is the four-subtask version published on ai-olympiada.sk; the Nitro AI judge version, which has an official English statement, has five subtasks. The starter notebook anomaly.ipynb is at https://github.com/andylucny/OAI/blob/main/problems/anomaly/anomaly.ipynb (the task page's anomaly.zip holds only anomaly.py). If you organise this olympiad and would like the translation removed, email [email protected] and we will take it down.
At a glance
- You get
- 10,000 PNG images; starter kit with the VAE encoder/decoder (
mnist_cvae8_encoder.pth,mnist_cvae8_decoder.pth) andanomaly.py. - You submit
- CSV with subtaskID (1–5), datapointID and answer: single rows for subtasks 1, 2 and 4, and 10,000 rows each for subtasks 3 and 5.
- Scoring
- Subtask 1: 5 pts minus 1 per percentage point of error. Subtask 2: 10 pts minus 1 per percent of relative error. Subtask 3: a proportional share of 60 pts per correctly found letter, −1 point per digit labelled as a letter (not below 0). Subtask 4: up to 5 pts depending on deviation. Subtask 5: up to 20 pts by longest common subsequence with the correct letter string.
- Rules
- AI-assisted coding tools (ChatGPT, Gemini, Copilot or similar) are prohibited.
- No collaboration, plagiarism, pre-written solutions or external code repositories.
- Only the packages installed in the competition environment (a long list of standard ML/DL/NLP/CV libraries is given in the rules).
- Submission limit 50, two final submissions (platform settings).
- Format
- National round (celoštátne kolo), 16–18 April 2026, Faculty of Science, Pavol Jozef Šafárik University (UPJŠ), Košice; contest on Nitro AI Judge on 17 April 2026, 06:30–12:00 UTC; 24 contestants; individual. Statements on Nitro are bilingual (English first, then Slovak).