Skip to content

Commit 138f249

Browse files
committed
Add more tasks
1 parent 121dd8f commit 138f249

18 files changed

Lines changed: 1703 additions & 30 deletions

task_packs/masters_s0_2026_2.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "masters_s0_2026_2",
3+
"task_names": [
4+
"figure_skating_total_points",
5+
"ski_laps_count",
6+
"speed_skating_time_to_seconds",
7+
"cross_country_podium_indices",
8+
"hockey_bet_outcome",
9+
"alpine_slalom_best_run",
10+
"biathlon_penalty_time",
11+
"short_track_set_winner",
12+
"skiathlon_points_table",
13+
"speed_skating_heat_qualifiers",
14+
"winter_medal_table_ranking",
15+
"curling_match_score"
16+
]
17+
}
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
level = "easy"
2+
name = "cross_country_podium_indices"
3+
tags = ["collections", "winter_olympics"]
4+
time_to_solve_sec = 250
5+
6+
description_en = """
7+
Array `times_sec` stores finish times of skiers by start index.
8+
Return indices of top three athletes.
9+
10+
Sort by:
11+
1. smaller time
12+
2. smaller index for ties
13+
14+
If fewer than three athletes exist, return all ranked indices.
15+
"""
16+
17+
description_ru = """
18+
Массив `times_sec` хранит финишные времена лыжников по стартовому индексу.
19+
Верните индексы трех лучших.
20+
21+
Сортировка:
22+
1. меньшее время
23+
2. меньший индекс при равенстве
24+
25+
Если участников меньше трех, верните все индексы по рангу.
26+
"""
27+
28+
solution = """
29+
def solution(times_sec: list[int]) -> list[int]:
30+
order = sorted(range(len(times_sec)), key=lambda i: (times_sec[i], i))
31+
return order[:3]
32+
"""
33+
34+
examples = """
35+
solution([40]) == [0]
36+
solution([90, 80, 70]) == [2, 1, 0]
37+
solution([120, 115, 115, 130]) == [1, 2, 0]
38+
"""
39+
40+
[[input_signature]]
41+
argument_name = "times_sec"
42+
[input_signature.type]
43+
name = "array"
44+
[input_signature.type.nested]
45+
name = "integer"
46+
47+
[output_signature.type]
48+
name = "array"
49+
[output_signature.type.nested]
50+
name = "integer"
51+
52+
[[asserts]]
53+
arguments = [[40]]
54+
expected = [0]
55+
56+
[[asserts]]
57+
arguments = [[90, 80, 70]]
58+
expected = [2, 1, 0]
59+
60+
[[asserts]]
61+
arguments = [[120, 115, 115, 130]]
62+
expected = [1, 2, 0]
63+
64+
[[asserts]]
65+
arguments = [[300, 200]]
66+
expected = [1, 0]
67+
68+
[[asserts]]
69+
arguments = [[50, 50, 50, 50]]
70+
expected = [0, 1, 2]
71+
72+
[[asserts]]
73+
arguments = [[10, 9, 8, 7, 6]]
74+
expected = [4, 3, 2]
75+
76+
[[asserts]]
77+
arguments = [[95, 100, 95, 90]]
78+
expected = [3, 0, 2]
79+
80+
[[asserts]]
81+
arguments = [[500, 100, 300, 200, 400]]
82+
expected = [1, 3, 2]
83+
84+
[[asserts]]
85+
arguments = [[111, 109, 110]]
86+
expected = [1, 2, 0]
87+
88+
[[asserts]]
89+
arguments = [[75, 72, 72, 74, 71]]
90+
expected = [4, 1, 2]
91+
92+
[[asserts]]
93+
arguments = [[1, 2, 3]]
94+
expected = [0, 1, 2]
95+
96+
[[asserts]]
97+
arguments = [[3, 2, 1]]
98+
expected = [2, 1, 0]
99+
100+
[[asserts]]
101+
arguments = [[5, 5, 4, 4, 3, 3]]
102+
expected = [4, 5, 2]
103+
104+
[[asserts]]
105+
arguments = [[1000, 999, 998, 997]]
106+
expected = [3, 2, 1]
107+
108+
[[asserts]]
109+
arguments = [[42, 41]]
110+
expected = [1, 0]
111+
112+
[[asserts]]
113+
arguments = [[7, 7, 7]]
114+
expected = [0, 1, 2]
115+
116+
[[asserts]]
117+
arguments = [[9, 8, 9, 8, 7]]
118+
expected = [4, 1, 3]
119+
120+
[[asserts]]
121+
arguments = [[11, 13, 12, 14, 10]]
122+
expected = [4, 0, 2]
123+
124+
[[asserts]]
125+
arguments = [[80, 60, 70, 50, 90]]
126+
expected = [3, 1, 2]
127+
128+
[[asserts]]
129+
arguments = [[6, 5, 4, 3, 2, 1]]
130+
expected = [5, 4, 3]
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
level = "easy"
2+
name = "hockey_bet_outcome"
3+
tags = ["collections", "winter_olympics"]
4+
time_to_solve_sec = 250
5+
6+
description_en = """
7+
A hockey bet contains predicted score (`pred_a`, `pred_b`) and final score (`real_a`, `real_b`).
8+
Return:
9+
- `"Score"` if exact score is guessed
10+
- `"Result"` if exact score is not guessed, but match outcome is guessed (A win, B win, or draw)
11+
- `"Miss"` otherwise
12+
"""
13+
14+
description_ru = """
15+
Ставка на хоккей содержит прогноз счета (`pred_a`, `pred_b`) и реальный счет (`real_a`, `real_b`).
16+
Верните:
17+
- `"Score"`, если точно угадан счет
18+
- `"Result"`, если счет не угадан, но угадан исход (победа A, победа B или ничья)
19+
- `"Miss"` в остальных случаях
20+
"""
21+
22+
solution = """
23+
def solution(pred_a: int, pred_b: int, real_a: int, real_b: int) -> str:
24+
if pred_a == real_a and pred_b == real_b:
25+
return "Score"
26+
p = (pred_a > pred_b) - (pred_a < pred_b)
27+
r = (real_a > real_b) - (real_a < real_b)
28+
return "Result" if p == r else "Miss"
29+
"""
30+
31+
examples = """
32+
solution(3, 2, 3, 2) == "Score"
33+
solution(2, 1, 4, 3) == "Result"
34+
solution(1, 1, 0, 2) == "Miss"
35+
"""
36+
37+
[[input_signature]]
38+
argument_name = "pred_a"
39+
[input_signature.type]
40+
name = "integer"
41+
42+
[[input_signature]]
43+
argument_name = "pred_b"
44+
[input_signature.type]
45+
name = "integer"
46+
47+
[[input_signature]]
48+
argument_name = "real_a"
49+
[input_signature.type]
50+
name = "integer"
51+
52+
[[input_signature]]
53+
argument_name = "real_b"
54+
[input_signature.type]
55+
name = "integer"
56+
57+
[output_signature.type]
58+
name = "string"
59+
60+
[[asserts]]
61+
arguments = [0, 0, 0, 0]
62+
expected = "Score"
63+
64+
[[asserts]]
65+
arguments = [3, 2, 3, 2]
66+
expected = "Score"
67+
68+
[[asserts]]
69+
arguments = [2, 1, 4, 3]
70+
expected = "Result"
71+
72+
[[asserts]]
73+
arguments = [1, 2, 3, 4]
74+
expected = "Result"
75+
76+
[[asserts]]
77+
arguments = [2, 2, 1, 1]
78+
expected = "Result"
79+
80+
[[asserts]]
81+
arguments = [1, 1, 0, 2]
82+
expected = "Miss"
83+
84+
[[asserts]]
85+
arguments = [3, 0, 2, 2]
86+
expected = "Miss"
87+
88+
[[asserts]]
89+
arguments = [0, 4, 5, 1]
90+
expected = "Miss"
91+
92+
[[asserts]]
93+
arguments = [5, 4, 1, 0]
94+
expected = "Result"
95+
96+
[[asserts]]
97+
arguments = [4, 5, 0, 1]
98+
expected = "Result"
99+
100+
[[asserts]]
101+
arguments = [6, 6, 6, 6]
102+
expected = "Score"
103+
104+
[[asserts]]
105+
arguments = [7, 7, 4, 4]
106+
expected = "Result"
107+
108+
[[asserts]]
109+
arguments = [8, 2, 8, 3]
110+
expected = "Result"
111+
112+
[[asserts]]
113+
arguments = [2, 8, 3, 8]
114+
expected = "Result"
115+
116+
[[asserts]]
117+
arguments = [10, 1, 1, 10]
118+
expected = "Miss"
119+
120+
[[asserts]]
121+
arguments = [1, 10, 10, 1]
122+
expected = "Miss"
123+
124+
[[asserts]]
125+
arguments = [9, 0, 9, 0]
126+
expected = "Score"
127+
128+
[[asserts]]
129+
arguments = [0, 9, 0, 9]
130+
expected = "Score"
131+
132+
[[asserts]]
133+
arguments = [4, 4, 3, 2]
134+
expected = "Miss"
135+
136+
[[asserts]]
137+
arguments = [3, 2, 4, 4]
138+
expected = "Miss"

0 commit comments

Comments
 (0)