Checklist VsOSh AI 2026 Final Stage, Tour 2 (practical) · D task
Humanity's Heritage
Russian title: Наследие Человечества
Re-pair the shuffled left and right halves of Russian poems using a supplied language model.
The task
Motivated by the reading of the carbonised Herculaneum papyri, Vadim wants to restore the order of text fragments and first tries an analogous Russian-language problem. From a collection of poems, some poems are kept whole (training data); every other poem is split into a left and a right part, and all parts are shuffled.
The contestant must restore the original (left, right) pairs. Weights of a large language model are provided, and the baseline shows how to obtain text embeddings from it.
Abridged and translated by SOTA from the official Russian materials. The official statement has the exact rules, and it wins wherever this summary differs.
In English
This task was published in Russian. SOTA translated its 4 files into English on 17 September 2026.
- Task statement Russian original of Task statement
- Official solution Russian original of Official solution
- Full paper (all tasks of the tour) Russian original of Full paper (all tasks of the tour)
- All solutions of the tour Russian original of All solutions of the tour
Read the task statement in English
Humanity's Heritage
English translation by SOTA – AI Community of the Russian original. Organisers who would like this translation removed can email [email protected].
All-Russian School Olympiad in Informatics 2025–2026, Final Stage
“Artificial Intelligence” profile, Tour 2, Moscow, 25 March 2026
Task D
Statement
The eruption of Mount Vesuvius in 79 AD buried in ash and destroyed the city of Pompeii and many other towns, including Herculaneum, where in 1750 an ancient Roman villa with a large number of ancient papyri was discovered. The scrolls kept in its library had been carbonised and turned into fragile black cylinders. Today, scientists are striving to read them using X-ray tomography, computer reconstruction and machine learning.
When Vadim learned about this, he thought that he too would like to take part in the decipherment. On learning that scientists are already working on restoring the text inside each individual papyrus, he realised that the next step is to restore the correct order of the papyri themselves, since ancient treatises usually consisted of several parts.
Since Vadim does not know Ancient Greek, he decided to consider an analogous problem in Russian first. For this, he took a collection of poems and left some of the poems unchanged (train_D.json). He split each of the remaining poems (test_D.json) into two parts and then shuffled all the left and right parts together. Now Vadim's task is to restore the original pairs and put the poems back together.
Input format
The following files are attached to the task:
model_D.zip: weights for a large language model.baseline_D.ipynb: a notebook with a baseline solution of the task and an example of using the large language modelmodel_D.zipto obtain text embeddingstrain_D.json: additional poems in full;test_D.json: the shuffled left and right parts of the poems;submission_D.csv: an example of the solution that must be submitted to the testing system.
Output format
For checking, you must upload the archive solution_D.zip.
The archive must contain:
- The file
submission_D.csvwith two columns:left_id: the ID of a left half fromtest_D.json;right_id: the ID of a right half fromtest_D.json.
- The file
solution_D.ipynb: a Jupyter Notebook with your solution.
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.
The data are split into a public and a private part. When you submit submission_D.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, your metric will be converted to a 60-point scale according to the following rule:
- the result of the baseline solution, with a value of Accuracy , is scored 0 points;
- a result with a value of Accuracy is scored 60 points;
- if the value of Accuracy lies between and , the number of points is computed by the linear interpolation formula:
The metric values and 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 evaluates how correctly the left and right parts of the poems are matched.
Let:
- be the total number of left parts in
test.json; - be the number of correctly restored pairs, that is, pairs
(left_id, right_id)that coincide with the true correspondence.
Then the metric is computed by the formula
In other words, the metric shows the proportion of correctly restored poems.
The value of Accuracy lies in the range from 0 to 1. The higher the value, the better the quality of the solution.
Example of computing Accuracy in Python:
import pandas as pd
merged = true_pairs.merge(pred_pairs, on="left_id", suffixes=("_true", "_pred"))
correct = (merged["right_id_true"] == merged["right_id_pred"]).sum()
accuracy = correct / len(merged)
print("Accuracy =", accuracy)
Translated by SOTA. The Russian original is the official version and wins wherever the two differ. The data files, model weights and baseline_D.ipynb named in the statement are not included in the PDF. In the official solution, the poem fragments printed as examples are the Russian task data and stay untranslated. 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
model_D.zip(LLM weights),baseline_D.ipynb,train_D.json(whole poems),test_D.json(shuffled left and right parts),submission_D.csv(example).- You submit
- A zip archive with exactly one .csv (the predictions) and exactly one .ipynb (the solution notebook); additional files needed by the solution are allowed. The CSV is
submission_D.csvwith columnsleft_idandright_id. - Scoring
- Accuracy = K / N, the share of left parts matched to the correct right part. After the stage the metric is mapped to 0–60 points: the baseline value X or worse gives 0, Y or better gives 60, linear in between (Score = 60·(m − X)/(Y − X)); X and Y were shown in the testing system. Scored on a private part of the test set; the last submission counts. Maximum 60 points.
- Format
- Final stage, Tour 2 (practical), Moscow, 25 March 2026; grades 9–11; individual; submissions to an online testing system.