rbx.cp 0.6.1__py3-none-any.whl → 0.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. rbx/box/cd.py +32 -4
  2. rbx/box/cli.py +82 -34
  3. rbx/box/code.py +131 -82
  4. rbx/box/contest/main.py +25 -0
  5. rbx/box/creation.py +3 -0
  6. rbx/box/global_package.py +74 -0
  7. rbx/box/linting.py +76 -7
  8. rbx/box/package.py +6 -19
  9. rbx/box/presets/__init__.py +4 -4
  10. rbx/box/remote.py +19 -0
  11. rbx/box/sanitizers/warning_stack.py +3 -3
  12. rbx/box/solutions.py +13 -7
  13. rbx/box/stats.py +10 -0
  14. rbx/box/stresses.py +45 -64
  15. rbx/box/stressing/finder_parser.py +11 -16
  16. rbx/box/tasks.py +33 -22
  17. rbx/box/tooling/boca/scraper.py +1 -1
  18. rbx/grading/caching.py +98 -47
  19. rbx/grading/debug_context.py +31 -0
  20. rbx/grading/grading_context.py +96 -0
  21. rbx/grading/judge/cacher.py +93 -21
  22. rbx/grading/judge/sandbox.py +6 -3
  23. rbx/grading/judge/sandboxes/timeit.py +1 -1
  24. rbx/grading/judge/storage.py +169 -35
  25. rbx/grading/profiling.py +126 -0
  26. rbx/grading/steps.py +44 -16
  27. rbx/grading/steps_with_caching.py +52 -26
  28. rbx/resources/presets/default/contest/.gitignore +2 -0
  29. rbx/resources/presets/default/contest/contest.rbx.yml +18 -4
  30. rbx/resources/presets/default/contest/statement/contest.rbx.tex +25 -86
  31. rbx/resources/presets/default/contest/statement/icpc.sty +322 -0
  32. rbx/resources/presets/default/contest/statement/instructions.tex +40 -0
  33. rbx/resources/presets/default/contest/statement/logo.png +0 -0
  34. rbx/resources/presets/default/contest/statement/template.rbx.tex +45 -36
  35. rbx/resources/presets/default/preset.rbx.yml +8 -6
  36. rbx/resources/presets/default/problem/problem.rbx.yml +20 -17
  37. rbx/resources/presets/default/problem/statement/icpc.sty +322 -0
  38. rbx/resources/presets/default/problem/statement/template.rbx.tex +47 -79
  39. {rbx_cp-0.6.1.dist-info → rbx_cp-0.8.0.dist-info}/METADATA +4 -1
  40. {rbx_cp-0.6.1.dist-info → rbx_cp-0.8.0.dist-info}/RECORD +48 -41
  41. rbx/resources/presets/default/contest/statement/olymp.sty +0 -250
  42. rbx/resources/presets/default/problem/statement/olymp.sty +0 -250
  43. /rbx/resources/presets/default/problem/{gen.cpp → gens/gen.cpp} +0 -0
  44. /rbx/resources/presets/default/problem/{tests → manual_tests}/samples/000.in +0 -0
  45. /rbx/resources/presets/default/problem/{tests → manual_tests}/samples/001.in +0 -0
  46. /rbx/resources/presets/default/problem/{random.py → testplan/random.py} +0 -0
  47. /rbx/resources/presets/default/problem/{random.txt → testplan/random.txt} +0 -0
  48. {rbx_cp-0.6.1.dist-info → rbx_cp-0.8.0.dist-info}/LICENSE +0 -0
  49. {rbx_cp-0.6.1.dist-info → rbx_cp-0.8.0.dist-info}/WHEEL +0 -0
  50. {rbx_cp-0.6.1.dist-info → rbx_cp-0.8.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,322 @@
1
+ \usepackage{caption}
2
+ \usepackage{epsfig}
3
+ \usepackage{moreverb}
4
+ \usepackage{float}
5
+ \usepackage{fancyvrb}
6
+ \usepackage{multicol}
7
+ \usepackage{hyperref}
8
+ \usepackage{ifthen}
9
+ \usepackage{titlesec}
10
+ \usepackage{pmboxdraw}
11
+ \usepackage{xcolor}
12
+ \usepackage{colortbl}
13
+ \usepackage{tikz}
14
+ \usepackage{subcaption}
15
+ \usetikzlibrary{matrix,positioning,fit,scopes,chains}
16
+ \let\mytitleformat\titleformat
17
+ \let\titleformat\relax
18
+ \usepackage{logicpuzzle}
19
+ \usepackage{enumitem}
20
+ \usepackage{amsfonts}
21
+ \usepackage[brazil]{babel}
22
+ \usepackage[utf8]{inputenc}
23
+ \usepackage[T1]{fontenc}
24
+ \usepackage{indentfirst}
25
+ \usepackage{pdftexcmds}
26
+ \usepackage{amsmath}
27
+
28
+ \captionsetup[figure]{labelformat=empty}
29
+ \setlist[itemize]{noitemsep, nolistsep}
30
+
31
+ \setlength{\marginparwidth}{0pt}
32
+ \setlength{\oddsidemargin}{-0.25cm}
33
+ \setlength{\evensidemargin}{-0.25cm}
34
+ \setlength{\marginparsep}{0pt}
35
+
36
+ \setlength{\parindent}{0cm}
37
+ \setlength{\parskip}{5pt}
38
+
39
+ \setlength{\textwidth}{16.5cm}
40
+ \setlength{\textheight}{25.5cm}
41
+
42
+ \setlength{\voffset}{-1in}
43
+
44
+ \newcommand{\insereArquivo}[1]{
45
+ \ifnum0\pdffilesize{#1}>0
46
+ \VerbatimInput[xleftmargin=0mm,numbers=none,obeytabs=true]{#1}\vspace{.5em}
47
+ \fi
48
+ }
49
+
50
+ \newcommand{\insereTexto}[1]{
51
+ \texttt{#1}
52
+ }
53
+
54
+ \def\portuguese{pt}
55
+ \ifx\lang\portuguese
56
+ \def\strTaskSheet{Caderno de Problemas}
57
+ \def\strSolutionSheet{Caderno de Soluções}
58
+ \def\strSponsored{Patrocínio}
59
+ \def\strHosted{Realização}
60
+ \def\strOrganized{Organização}
61
+ \def\strProblem{Problema }
62
+ \def\strExplanation{Explicação do exemplo }
63
+ \def\strInput{Entrada}
64
+ \def\strOutput{Saída}
65
+ \def\strInteraction{Interação}
66
+ \def\strSampleinput{Exemplo de entrada }
67
+ \def\strSampleoutput{Exemplo de saída }
68
+ \def\strSampleinteraction{Exemplo de interação }
69
+ \def\strInteractionread{Leitura}
70
+ \def\strInteractionwrite{Escrita}
71
+ \def\strExamples{Exemplos}
72
+ \def\strSolution{Solução}
73
+ \def\strNotes{Observações}
74
+ \else
75
+ \def\strTaskSheet{Task Sheet}
76
+ \def\strSolutionSheet{Solution Sheet}
77
+ \def\strSponsored{Sponsored by}
78
+ \def\strHosted{Hosted by}
79
+ \def\strOrganized{Organized by}
80
+ \def\strProblem{Problem }
81
+ \def\strExplanation{Explanation of sample }
82
+ \def\strInput{Input}
83
+ \def\strOutput{Output}
84
+ \def\strInteraction{Interaction}
85
+ \def\strSampleinput{Sample input }
86
+ \def\strSampleoutput{Sample output }
87
+ \def\strSampleinteraction{Sample interaction }
88
+ \def\strInteractionread{Read}
89
+ \def\strInteractionwrite{Write}
90
+ \def\strExamples{Examples}
91
+ \def\strSolution{Solution}
92
+ \def\strNotes{Notes}
93
+ \fi
94
+
95
+ \newcommand{\includeProblem}[3][]
96
+ {
97
+ \newpage
98
+ \def\ProblemLetter{#1}
99
+ \ifx\ProblemLetter\empty
100
+ {\huge{\bf #2}}
101
+ \else
102
+ {\huge{\bf \strProblem #1. #2}}
103
+ \fi
104
+ #3
105
+ }
106
+
107
+ \newcommand{\inputdesc}[1]{
108
+ \subsection*{\strInput}
109
+ {#1} }
110
+
111
+ \newcommand{\inputdescline}[1]{
112
+ \subsection*{\strInput}
113
+ \strInputdescline {#1} }
114
+
115
+ \newcommand{\outputdesc}[1]{
116
+ \subsection*{\strOutput}
117
+ {#1}}
118
+
119
+ \newcommand{\interactiondesc}[1]{
120
+ \subsection*{\strInteraction}
121
+ {#1}}
122
+
123
+ \newcommand{\sampledesc}[2]{
124
+ \subsection*{\strExplanation #1}
125
+ {#2}}
126
+
127
+
128
+ \newcommand{\incat}[1]{sample-#1.in}
129
+ \newcommand{\solcat}[1]{sample-#1.sol}
130
+ \newcounter{problemcounter}
131
+ \setcounter{problemcounter}{0}
132
+ \newcounter{exemplocounter}[problemcounter]
133
+ \setcounter{exemplocounter}{0}
134
+
135
+ \newcommand\mc[1]{\multicolumn{1}{l}{#1}}
136
+ \newcommand{\example}[2]{
137
+ {\small
138
+
139
+ \stepcounter{exemplocounter}
140
+
141
+ \begin{minipage}[c]{0.945\textwidth}
142
+ \begin{center}
143
+ \begin{tabular}{|l|l|}
144
+ \mc{\bf{\strSampleinput \arabic{exemplocounter}}}
145
+ &
146
+ \mc{\bf{\strSampleoutput \arabic{exemplocounter}}} \\
147
+
148
+ \hline
149
+ \begin{minipage}[t]{0.5\textwidth}
150
+ \vspace{0.01cm}
151
+ \insereArquivo{#1}
152
+ \vspace{-0.2cm}
153
+ \end{minipage}
154
+ &
155
+ \begin{minipage}[t]{0.5\textwidth}
156
+ \vspace{0.01cm}
157
+ \insereArquivo{#2}
158
+ \vspace{-0.2cm}
159
+ \end{minipage} \\
160
+ \hline
161
+ \end{tabular}
162
+ \end{center}
163
+ \end{minipage} % leave next line empty
164
+
165
+ }
166
+ } % example
167
+
168
+ \newcommand{\exampleInteractive}{
169
+ {\small
170
+
171
+ \stepcounter{exemplocounter}
172
+
173
+ \begin{center}
174
+ \begin{tabular}{lcr}
175
+ \begin{minipage}[t]{0.3\textwidth}
176
+ \hspace{-0.19cm}\bf{\strInteractionread}
177
+ \end{minipage}
178
+ &
179
+ \begin{minipage}[t]{0.3\textwidth}
180
+ \bf{\strSampleinteraction \arabic{exemplocounter}}
181
+ \end{minipage}
182
+ &
183
+ \begin{minipage}[t]{0.3\textwidth}
184
+ \hfill \bf{\strInteractionwrite}
185
+ \end{minipage}
186
+ \end{tabular}
187
+ \end{center}
188
+ \vspace{-0.5cm}
189
+ }
190
+ } % exampleInteractive
191
+
192
+ \newcommand{\interaction}[2]{
193
+ {\small
194
+
195
+ \ifthenelse{\equal{#2}{\string 0}}{
196
+ \vspace{-0.3cm}
197
+ \begin{tabular}{|l|}
198
+ \hline
199
+ \begin{minipage}[t]{0.55\textwidth}
200
+ \vspace{0.01cm}
201
+ \insereTexto{#1}
202
+ \vspace{0.28cm}
203
+ \end{minipage}
204
+ \\
205
+ \hline
206
+ \end{tabular}
207
+ }{
208
+ \vspace{-0.3cm}
209
+ \hfill
210
+ \begin{tabular}{|l|}
211
+ \hline
212
+ \begin{minipage}[t]{0.55\textwidth}
213
+ \vspace{0.01cm}
214
+ \insereTexto{#1}
215
+ \vspace{0.28cm}
216
+ \end{minipage}
217
+ \\
218
+ \hline
219
+ \end{tabular}
220
+ }
221
+
222
+ }
223
+ } % interaction
224
+
225
+ \newcommand{\explanation}[1]{
226
+ \textbf{\strExplanation\theexemplocounter}
227
+
228
+ {#1} % leave empty line
229
+
230
+ } % explanation
231
+
232
+ \addtolength{\parskip}{0.4\baselineskip}
233
+
234
+ \pagestyle{myheadings}
235
+
236
+ \newcounter{pcounter}\setcounter{pcounter}{0}
237
+ \newcounter{qcounter}\setcounter{qcounter}{0}
238
+
239
+ \usepackage{titlesec}
240
+
241
+ \titlespacing\section{0pt}{6pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
242
+ \titlespacing\subsection{0pt}{6pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
243
+ \titlespacing\subsubsection{0pt}{6t plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
244
+
245
+ \newcommand{\InsertTitlePage}
246
+ {
247
+ \pagestyle{myheadings}
248
+ \markright{\Title -- \Year}
249
+
250
+ %%% Title Page
251
+ \begin{titlepage}
252
+ \vspace*{\fill}
253
+ \begin{center}
254
+
255
+ \includegraphics[width=8cm]{logo.png}
256
+
257
+ \vspace{0.8cm}
258
+ {\huge\bf \Title}\\[12pt]
259
+ {\large{\bf \strTaskSheet}}\\[12pt]
260
+ \vspace{1.5cm}
261
+ {\huge{\bf \Year}}
262
+
263
+ % \vspace{1cm}
264
+ % {\small \bf \strSponsored}\\[8pt]
265
+
266
+ % \includegraphics[width=16cm]{sponsors.png}
267
+
268
+ % \vspace{2cm}
269
+ % \begin{center}
270
+ % \setlength{\tabcolsep}{0.1\textwidth}
271
+ % \begin{tabular}{cc}
272
+ % {\small\bf \strHosted} & {\small\bf \strOrganized} \\
273
+ % \includegraphics[width=3cm]{host.png} & \includegraphics[width=4cm]{organizers.png} \\
274
+ % \end{tabular}
275
+ % \end{center}
276
+
277
+ \end{center}
278
+ \vspace*{\fill}
279
+ \end{titlepage}
280
+
281
+ \clearpage
282
+ }
283
+
284
+ \newcommand{\InsertEditorialTitlePage}
285
+ {
286
+ \pagestyle{myheadings}
287
+ \markright{\Title -- \Year}
288
+
289
+ %%% Title Page
290
+ \begin{titlepage}
291
+ \vspace*{\fill}
292
+ \begin{center}
293
+
294
+ \includegraphics[width=8cm]{logo.png}
295
+
296
+ \vspace{0.8cm}
297
+ {\huge\bf \Title}\\[12pt]
298
+ {\large{\bf \strSolutionSheet}}\\[12pt]
299
+ \vspace{1.5cm}
300
+ {\huge{\bf \Year}}
301
+
302
+ % \vspace{1cm}
303
+ % {\small \bf \strSponsored}\\[8pt]
304
+
305
+ % \includegraphics[width=16cm]{sponsors.png}
306
+
307
+ % \vspace{2cm}
308
+ % \begin{center}
309
+ % \setlength{\tabcolsep}{0.1\textwidth}
310
+ % \begin{tabular}{cc}
311
+ % {\small\bf \strHosted} & {\small\bf \strOrganized} \\
312
+ % \includegraphics[width=3cm]{host.png} & \includegraphics[width=4cm]{organizers.png} \\
313
+ % \end{tabular}
314
+ % \end{center}
315
+
316
+ \end{center}
317
+ \vspace*{\fill}
318
+ \end{titlepage}
319
+
320
+ \clearpage
321
+ }
322
+
@@ -0,0 +1,40 @@
1
+ \section*{General Information}
2
+
3
+ This task sheet consists of \pageref*{lastpage} pages (not counting the cover), numbered from 1 to \pageref*{lastpage}. Check if the sheet is complete.
4
+
5
+ \subsection*{Input}
6
+
7
+ \begin{itemize}
8
+ \item The input must be read from standard input.
9
+
10
+ \item All lines in the input, including the last one, end with a line break character (\texttt{\textbackslash n}).
11
+
12
+ \item When the input contains multiple space-separated values, there is exactly one whitespace character between two consecutive values on the same line.
13
+ \end{itemize}
14
+
15
+ \subsection*{Output}
16
+
17
+ \begin{itemize}
18
+ \item The output must be written to standard output.
19
+
20
+ \item The output must follow the format specified in the problem statement. The output must not contain any extra data.
21
+
22
+ \item All lines in the output, including the last one, must end with a line break character (\texttt{\textbackslash n}).
23
+
24
+ \item When a line in the output displays multiple space-separated values, there must be exactly one whitespace character between two consecutive values.
25
+
26
+ \item When an output value is a real number, use at least the number of decimal places corresponding to the precision required in the problem statement.
27
+ \end{itemize}
28
+
29
+ % \subsection*{Interactive Problems}
30
+
31
+ % The contest may contain interactive problems. In this type of problem, the input data provided to your program may not be predetermined but is instead specifically constructed for your solution. The judge writes a special program (the interactor), whose output is transferred to your solution's input, and your program's output is sent to the interactor's input. In other words, your solution and the interactor exchange data and may decide what to print based on the communication history.
32
+
33
+ % When writing a solution for an interactive problem, it is important to remember that if you print any data, it may first be stored in an internal \textit{buffer} and not immediately transferred to the interactor. To avoid this situation, you must use a special \textit{flush} operation every time you print data. These flush operations are available in the standard libraries of almost all programming languages:
34
+
35
+ % \begin{itemize}
36
+ % \item \texttt{fflush(stdout)} in \texttt{C}.
37
+ % \item \texttt{cout.flush()} in \texttt{C++}.
38
+ % \item \texttt{sys.stdout.flush()} in \texttt{Python}.
39
+ % \item \texttt{System.out.flush()} in \texttt{Java}.
40
+ % \end{itemize}
@@ -1,42 +1,51 @@
1
- \begin{problem}
1
+ %- if vars.show_problem is truthy
2
+ \includeProblem
2
3
  %- if problem.short_name is defined
3
- [\VAR{problem.short_name}]
4
+ [\VAR{problem.short_name}]
4
5
  %- endif
5
- {\VAR{problem.title | escape}}
6
- {stdin}
7
- {stdout}
8
- {\VAR{problem.package.timeLimit / 1000 | round(1, 'floor')} s}
9
- {\VAR{problem.package.memoryLimit} MB}
10
-
11
- \VAR{problem.blocks.legend}
12
-
13
- %- if problem.blocks.input is defined
14
- \InputFile
15
- \VAR{problem.blocks.input}
16
- %- endif
17
-
18
- %- if problem.blocks.output is defined
19
- \OutputFile
20
- \VAR{problem.blocks.output}
21
- %- endif
22
-
23
- \Examples
24
-
25
- %- for sample in problem.samples
26
- \begin{example}
27
- \exmpfile{\VAR{sample.inputPath}}{\VAR{sample.outputPath if sample.outputPath is not none else ''}}%
28
- \end{example}
29
- %- endfor
30
-
31
- %- if problem.blocks.notes is defined
32
- \Notes
33
- \VAR{problem.blocks.notes}
6
+ {\VAR{problem.title | escape}}{
7
+
8
+ \VAR{problem.blocks.legend}
9
+
10
+ %- if problem.blocks.input is defined
11
+ \inputdesc{\VAR{problem.blocks.input}}
12
+ %- endif
13
+
14
+ %- if problem.blocks.output is defined
15
+ \outputdesc{\VAR{problem.blocks.output}}
16
+ %- endif
17
+
18
+ %- if problem.blocks.interaction is defined
19
+ \interactiondesc{\VAR{problem.blocks.interaction}}
20
+ %- endif
21
+
22
+ %- if problem.samples
23
+ \vspace{0.3cm}
24
+ \subsection*{\strExamples}
25
+ %- for sample in problem.samples
26
+ %- if sample.interaction is not none
27
+ \exampleInteractive
28
+ %- for entry in sample.interaction.entries
29
+ \interaction{\VAR{entry.data}}{\VAR{entry.pipe}}
30
+ %- endfor
31
+ %- else
32
+ \example{\VAR{sample.inputPath}}
33
+ {\VAR{sample.outputPath if sample.outputPath is not none else ''}}
34
+ %- endif
35
+ %- if sample.explanation is not none
36
+ \explanation{\VAR{sample.explanation}}
37
+ %- endif
38
+ %- endfor
39
+ %- endif
40
+
41
+ %- if problem.blocks.notes is defined
42
+ \subsection*{\strNotes}
43
+ \VAR{problem.blocks.notes}
44
+ %- endif
45
+ }
34
46
  %- endif
35
47
 
36
- %- if problem.blocks.editorial is defined
37
- \Editorial
48
+ %- if problem.blocks.editorial is nonnull and vars.editorial is truthy
49
+ \subsection*{\strSolution}
38
50
  \VAR{problem.blocks.editorial}
39
51
  %- endif
40
-
41
-
42
- \end{problem}
@@ -1,12 +1,14 @@
1
+ ---
2
+ # yaml-language-server: $schema=https://rsalesc.github.io/rbx/schemas/Preset.json
1
3
  name: "default"
2
- uri: rsalesc/rbx/rbx/resources/presets/default
4
+ uri: "rsalesc/rbx/rbx/resources/presets/default"
3
5
  problem: "problem"
4
6
  contest: "contest"
5
7
  tracking:
6
8
  problem:
7
- - path: statement/template.rbx.tex
8
- - path: statement/olymp.sty
9
+ - path: "statement/template.rbx.tex"
10
+ - path: "statement/icpc.sty"
9
11
  contest:
10
- - path: statement/template.rbx.tex
11
- - path: statement/olymp.sty
12
- - path: statement/contest.rbx.tex
12
+ - path: "statement/template.rbx.tex"
13
+ - path: "statement/icpc.sty"
14
+ - path: "statement/contest.rbx.tex"
@@ -1,36 +1,38 @@
1
- # yaml-language-server: $schema=/home/rsalesc/.config/rbx/schemas/Package.json
2
-
1
+ ---
2
+ # yaml-language-server: $schema=https://rsalesc.github.io/rbx/schemas/Package.json
3
3
  name: "new-problem"
4
- timeLimit: 1000
5
- memoryLimit: 256
6
- checker: { path: "wcmp.cpp" } # Download others from testlib with `rbx download checker`
7
- validator: { path: "validator.cpp" }
4
+ timeLimit: 1000 # ms
5
+ memoryLimit: 256 # MiB
6
+ checker: {path: "wcmp.cpp"} # Download others from testlib with `rbx download checker`
7
+ validator: {path: "validator.cpp"}
8
8
  generators:
9
- - path: "gen.cpp"
9
+ - path: "gens/gen.cpp"
10
10
  name: "gen"
11
11
  testcases:
12
12
  - name: "samples"
13
- testcaseGlob: "tests/samples/*.in" # Pattern for the sample inputs.
13
+ testcaseGlob: "manual_tests/samples/*.in" # Pattern for the sample inputs.
14
14
  - name: "random"
15
15
  generatorScript:
16
- path: "random.txt" # Static generator script.
16
+ path: "testplan/random.txt" # Static generator script (testplan).
17
17
  - name: "program-random"
18
18
  generatorScript:
19
- path: "random.py" # Generator script written programatically.
19
+ path: "testplan/random.py" # Generator script written programatically.
20
20
  solutions:
21
21
  - path: "sols/main.cpp"
22
- outcome: ACCEPTED
22
+ outcome: "ACCEPTED"
23
23
  - path: "sols/wa.cpp"
24
- outcome: WRONG_ANSWER
24
+ outcome: "WRONG_ANSWER"
25
25
  - path: "sols/slow.cpp"
26
- outcome: TLE_OR_RTE # Can be TLE too
26
+ outcome: "TLE_OR_RTE" # Can be TLE too
27
27
  statements:
28
28
  - name: "statement-en"
29
29
  title: "New Problem"
30
30
  path: "statement/statement.rbx.tex" # Open this file to edit your statement.
31
- type: rbxTeX
31
+ type: "rbxTeX"
32
32
  language: "en"
33
- assets: ["statement/olymp.sty", "statement/*.png"]
33
+ assets: # Define assets for the statement.
34
+ - "statement/icpc.sty"
35
+ - "statement/*.png"
34
36
  configure:
35
37
  - type: "rbx-tex" # Convert rbxTeX to TeX
36
38
  template: "statement/template.rbx.tex"
@@ -51,6 +53,7 @@ unitTests:
51
53
  outcome: "ACCEPTED"
52
54
  - glob: "unit/checker/wa*"
53
55
  outcome: "WRONG_ANSWER"
56
+ # Can be used in the validator, checker, interactor, stress tests
57
+ # and in the statement.
54
58
  vars:
55
- "MAX_N": 1000000000 # Can be used in the validator, in stress tests and in the statement.
56
-
59
+ MAX_N: 1000000000