# Suspicious Cakes

*English translation by SOTA – AI Community of the Russian original. Organisers who would like this translation removed can email sota.ai.community@gmail.com.*

All-Russian School Olympiad in Informatics 2025–2026, Final Stage<br>
“Artificial Intelligence” profile, Tour 2, Moscow, 25 March 2026<br>
Task E

## Statement

Sasha is often ill and is trying to understand why. He suspects that the problem may be related to the cakes he regularly eats.

Recently, Sasha bought a new batch of cakes, and there may be unusual ones among them that are harmful to him. Sasha very much wants to eat all the cakes, but he does not want to fall ill again. For this, Sasha needs to learn to determine which cakes differ from the rest.

Sasha is sure that suspicious cakes can be told apart visually. To learn to find them, he decided to train a convolutional neural network to analyse images of cakes. However, for training, Sasha only has "normal" cakes, which are known to be definitely not harmful to him. Sasha eats 10 kinds of cakes in total, so he trained the neural network to classify "normal" cakes into 10 classes. Now Sasha needs to work out how to use this model to find "harmful" cakes. Sasha asks for your help in finding the suspicious cakes in the new batch.

You are given images of cakes from the new batch and the weights of a pre-trained neural network. The network was trained only on "normal" cakes and solves a classification problem with 10 classes. You need to determine which cakes from the new batch differ from the "normal" ones. It is known that there are exactly 1000 suspicious cakes.

## Input format

The following files are attached to the task:

- `public_test_package_E.npz`: test images of size $32 \times 32$;
- `model_weights_E.pt`: the weights of the pre-trained CNN;
- `baseline_E.ipynb`: a baseline notebook with an example solution;
- `submission_E.csv`: an example answer file.

## Output format

For checking, you must upload the archive `solution_E.zip`.

The archive must contain:

1. The file `submission_E.csv` with two columns:
   - `id`: the index of the object, from 0 to $N - 1$;
   - `is_outlier`: your prediction:
     - `1` if the object is suspicious;
     - `0` if the object is considered normal.
2. The file `solution_E.ipynb`: a Jupyter Notebook with your solution.

The file `submission_E.csv` must contain exactly 1000 rows with the value `is_outlier = 1`.

You may add to the archive additional files needed for your solution to work. The archive must, however, contain exactly one file with the extension `.csv` and exactly one file with the extension `.ipynb`.

## Scoring

You can get up to 60 points for this task.

If the number of objects marked as suspicious in the submitted file **differs from 1000, the task is scored 0 points**.

The data are split into a public and a private part. When you submit `submission_E.csv`, you are shown the result on the **public** part. After the end of the stage, the result will be recomputed on the **private** part. The public and private parts do not overlap.

After the end of the stage, the value of the metric will be converted to a 60-point scale according to the following rule:

- the result of the **baseline solution**, with a value of Recall@K $\leq X$, is scored **0 points**;
- a result with a value of Recall@K $\geq Y$ is scored **60 points**;
- if the value of Recall@K lies between $X$ and $Y$, the number of points is computed by the linear interpolation formula:

$$\text{Score} = 60 \cdot \frac{\text{Recall@K} - X}{Y - X}.$$

The metric values $X$ and $Y$ will be available in the testing system.

The final score for the task is based on the **last** submission.

## Metric for evaluating the accuracy of the answer

This task uses the **Recall@K** metric.

The participant must mark exactly $K = 1000$ objects as suspicious. Let hits@K be the number of correctly found suspicious objects among the marked ones. Then

$$\text{Recall@K} = \frac{\text{hits@K}}{K}.$$

In other words, the more genuinely suspicious objects you find among the 1000 you select, the higher the result.
