@jutge.org/toolkit 4.0.0
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.
- package/README.md +5 -0
- package/assets/images/jutge-toolkit.png +0 -0
- package/assets/images/jutge.png +0 -0
- package/assets/lua/fixCodeBlocks.lua +19 -0
- package/assets/lua/removeEnvs.lua +20 -0
- package/assets/lua/removeHtmlOnly.lua +11 -0
- package/assets/problems/function/valid-date.pbm/README.md +11 -0
- package/assets/problems/function/valid-date.pbm/award.html +1 -0
- package/assets/problems/function/valid-date.pbm/award.png +0 -0
- package/assets/problems/function/valid-date.pbm/ca/handler.yml +3 -0
- package/assets/problems/function/valid-date.pbm/ca/main.c +13 -0
- package/assets/problems/function/valid-date.pbm/ca/main.cc +14 -0
- package/assets/problems/function/valid-date.pbm/ca/main.java +16 -0
- package/assets/problems/function/valid-date.pbm/ca/main.py +6 -0
- package/assets/problems/function/valid-date.pbm/ca/problem.ca.tex +40 -0
- package/assets/problems/function/valid-date.pbm/ca/problem.ca.yml +3 -0
- package/assets/problems/function/valid-date.pbm/ca/random.inp +113976 -0
- package/assets/problems/function/valid-date.pbm/ca/sample.inp +4 -0
- package/assets/problems/function/valid-date.pbm/ca/solution.c +15 -0
- package/assets/problems/function/valid-date.pbm/ca/solution.cc +16 -0
- package/assets/problems/function/valid-date.pbm/ca/solution.java +17 -0
- package/assets/problems/function/valid-date.pbm/ca/solution.py +13 -0
- package/assets/problems/function/valid-date.pbm/en/handler.yml +3 -0
- package/assets/problems/function/valid-date.pbm/en/main.c +13 -0
- package/assets/problems/function/valid-date.pbm/en/main.cc +14 -0
- package/assets/problems/function/valid-date.pbm/en/main.java +16 -0
- package/assets/problems/function/valid-date.pbm/en/main.py +7 -0
- package/assets/problems/function/valid-date.pbm/en/problem.en.tex +46 -0
- package/assets/problems/function/valid-date.pbm/en/problem.en.yml +4 -0
- package/assets/problems/function/valid-date.pbm/en/random.inp +108200 -0
- package/assets/problems/function/valid-date.pbm/en/sample.inp +4 -0
- package/assets/problems/function/valid-date.pbm/en/solution.c +15 -0
- package/assets/problems/function/valid-date.pbm/en/solution.cc +16 -0
- package/assets/problems/function/valid-date.pbm/en/solution.java +20 -0
- package/assets/problems/function/valid-date.pbm/en/solution.py +13 -0
- package/assets/problems/graphic/japanese-flag.pbm/README.md +14 -0
- package/assets/problems/graphic/japanese-flag.pbm/award.png +0 -0
- package/assets/problems/graphic/japanese-flag.pbm/handler.yml +2 -0
- package/assets/problems/graphic/japanese-flag.pbm/problem.ca.tex +21 -0
- package/assets/problems/graphic/japanese-flag.pbm/problem.ca.yml +3 -0
- package/assets/problems/graphic/japanese-flag.pbm/sample-1.inp +1 -0
- package/assets/problems/graphic/japanese-flag.pbm/sample-2.inp +1 -0
- package/assets/problems/graphic/japanese-flag.pbm/solution.cc +25 -0
- package/assets/problems/graphic/japanese-flag.pbm/solution.py +11 -0
- package/assets/problems/graphic/tortuga.pbm/README.md +13 -0
- package/assets/problems/graphic/tortuga.pbm/award.png +0 -0
- package/assets/problems/graphic/tortuga.pbm/handler.yml +2 -0
- package/assets/problems/graphic/tortuga.pbm/problem.ca.tex +23 -0
- package/assets/problems/graphic/tortuga.pbm/problem.ca.yml +3 -0
- package/assets/problems/graphic/tortuga.pbm/sample.inp +0 -0
- package/assets/problems/graphic/tortuga.pbm/solution.py +11 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/README.md +15 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.html +1 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.png +0 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.png +0 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/handler.yml +2 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.tex +59 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.tex +52 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/sample.inp +7 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/slow.cc +29 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/solution.cc +48 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-1.inp +12 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.inp +100000 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.ops +1 -0
- package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-b.inp +0 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/README.md +11 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/handler.yml +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.tex +17 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.tex +16 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-1.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-2.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/sample-3.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.c +18 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.cc +13 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.java +16 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/solution.py +5 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-1.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-2.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-3.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-4.inp +1 -0
- package/assets/problems/standard/maximum-of-2-integers.pbm/test-5.inp +1 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/README.md +12 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/atzar.cc +85 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/award.png +0 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-1.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-2.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-3.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/generate-4.cc +26 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/handler.yml +1 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.tex +40 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.yml +3 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.tex +40 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.yml +4 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-1.inp +24 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-2.inp +27 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-3.inp +38 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/random-4.inp +50 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-1.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-2.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/sample-3.inp +7 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/solution.cc +38 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-1.inp +5 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-2.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-3.inp +6 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-4.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-5.inp +10 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-6.inp +9 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-7.inp +12 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-8.inp +3 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-9.inp +37 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-91.inp +52 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-92.inp +25 -0
- package/assets/problems/standard/treasures-in-a-map.pbm/test-93.inp +3 -0
- package/assets/prompts/creators/create-solution.tpl.txt +10 -0
- package/assets/prompts/creators/create-statement.tpl.txt +21 -0
- package/assets/prompts/creators/create-translation.tpl.txt +5 -0
- package/assets/prompts/creators/private-test-cases.txt +6 -0
- package/assets/prompts/creators/sample-test-cases.txt +6 -0
- package/assets/prompts/creators/system-prompt.txt +2 -0
- package/assets/prompts/examples/statement-coda.tex +7 -0
- package/assets/prompts/examples/statement.tex +19 -0
- package/assets/prompts/generators/efficiency.md +41 -0
- package/assets/prompts/generators/hard.md +47 -0
- package/assets/prompts/generators/random.md +39 -0
- package/assets/prompts/proglangs/cc.md +3 -0
- package/assets/prompts/proglangs/py.md +40 -0
- package/assets/python/pyexec.py +29 -0
- package/assets/sty/judgeit.ca.sty +54 -0
- package/assets/sty/judgeit.de.sty +61 -0
- package/assets/sty/judgeit.en.sty +60 -0
- package/assets/sty/judgeit.es.sty +54 -0
- package/assets/sty/judgeit.fr.sty +59 -0
- package/assets/sty/judgeit.sty +326 -0
- package/assets/sty/picins.sty +579 -0
- package/dist/index.js +4246 -0
- package/package.json +103 -0
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# new-jutge-toolkit
|
|
2
|
+
|
|
3
|
+
This repository contains a toolkit for creating and managing programming exercises on the Jutge.org platform.
|
|
4
|
+
|
|
5
|
+
This new repository is intended to replace the previous `jutge-toolkit` repository, providing enhanced features and improved usability for educators and developers.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-- This function runs on every CodeBlock element.
|
|
2
|
+
function CodeBlock(el)
|
|
3
|
+
-- Check if a 'language' attribute exists (from the lstlisting options).
|
|
4
|
+
if el.attributes.language then
|
|
5
|
+
-- Get the language name from the attribute.
|
|
6
|
+
-- We convert it to lowercase, as is standard for Markdown code fences.
|
|
7
|
+
local lang = el.attributes.language:lower()
|
|
8
|
+
|
|
9
|
+
-- A Markdown code block's language is determined by its first class.
|
|
10
|
+
-- We replace all existing classes with a new list containing only our language.
|
|
11
|
+
el.classes = pandoc.List{lang}
|
|
12
|
+
|
|
13
|
+
-- We clear all other attributes (like morekeywords) to keep the output clean.
|
|
14
|
+
el.attributes = {}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
-- Return the modified (or original) element.
|
|
18
|
+
return el
|
|
19
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- A set of environment names to be removed completely.
|
|
2
|
+
-- Add the names of your custom environments to this list.
|
|
3
|
+
local environments_to_remove = {
|
|
4
|
+
latexonly = true,
|
|
5
|
+
ignora = true
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
-- This function is called for every 'Div' element in the document.
|
|
9
|
+
-- Pandoc parses LaTeX environments like \begin{solution}...\end{solution}
|
|
10
|
+
-- into Div elements with the environment name as a class.
|
|
11
|
+
function Div(div)
|
|
12
|
+
-- Check if the Div has a class and if that class is in our removal list.
|
|
13
|
+
if div.classes[1] and environments_to_remove[div.classes[1]] then
|
|
14
|
+
-- If it is, return an empty list to remove it from the output.
|
|
15
|
+
return {}
|
|
16
|
+
else
|
|
17
|
+
-- Otherwise, return nil to leave it unchanged.
|
|
18
|
+
return nil
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- This function is called for every 'Div' element in the document.
|
|
2
|
+
function Div(el)
|
|
3
|
+
-- Check if the Div has the class 'htmlonly'.
|
|
4
|
+
if el.classes:includes('htmlonly') then
|
|
5
|
+
-- If it does, return the content of the block,
|
|
6
|
+
-- without its wrapper
|
|
7
|
+
return el.content
|
|
8
|
+
end
|
|
9
|
+
-- For all other Divs, return them unchanged.
|
|
10
|
+
return el
|
|
11
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Valid date
|
|
2
|
+
|
|
3
|
+
## Features
|
|
4
|
+
|
|
5
|
+
- Function problem: students must implement a function that solves the problem
|
|
6
|
+
- Statements in multiple languages in separate directories
|
|
7
|
+
- Awards in award.png and award.html files
|
|
8
|
+
|
|
9
|
+
## Abstract
|
|
10
|
+
|
|
11
|
+
Write a function that takes three integers representing a day, month, and year, and tells if the date is valid or not.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Good job
|
|
Binary file
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import java.util.Scanner;
|
|
2
|
+
|
|
3
|
+
class Main {
|
|
4
|
+
|
|
5
|
+
public static void main(String[] args) {
|
|
6
|
+
final Scanner sc = new Scanner(System.in);
|
|
7
|
+
while (sc.hasNextInt()) {
|
|
8
|
+
int d = sc.nextInt();
|
|
9
|
+
int m = sc.nextInt();
|
|
10
|
+
int a = sc.nextInt();
|
|
11
|
+
System.out.println(Solution.esDataValida(d, m, a) ? "true" : "false");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
\Problem{Dates vàlides}
|
|
3
|
+
|
|
4
|
+
\Statement
|
|
5
|
+
|
|
6
|
+
Feu una funció que indiqui si la data definida
|
|
7
|
+
amb un dia @d@, mes @m@ i any @a@ és vàlida o no.
|
|
8
|
+
|
|
9
|
+
\Interface
|
|
10
|
+
\begin{tabular}{rl}
|
|
11
|
+
\CPP &
|
|
12
|
+
\begin{lstlisting}[language=C++,morekeywords={string}]
|
|
13
|
+
bool es_data_valida(int d, int m, int a);
|
|
14
|
+
\end{lstlisting}
|
|
15
|
+
\\
|
|
16
|
+
C &
|
|
17
|
+
\begin{lstlisting}[language=C]
|
|
18
|
+
int es_data_valida(int d, int m, int a);
|
|
19
|
+
\end{lstlisting}
|
|
20
|
+
\\
|
|
21
|
+
Java &
|
|
22
|
+
\begin{lstlisting}[language=Java,morekeywords={String}]
|
|
23
|
+
public static boolean esDataValida(int d, int m, int a);
|
|
24
|
+
\end{lstlisting}
|
|
25
|
+
\\
|
|
26
|
+
Python &
|
|
27
|
+
\begin{lstlisting}[language=Python]
|
|
28
|
+
es_data_valida(d, m, a) # returns bool
|
|
29
|
+
\end{lstlisting}
|
|
30
|
+
\\
|
|
31
|
+
&
|
|
32
|
+
\begin{lstlisting}[language=Python]
|
|
33
|
+
es_data_valida(d: int, m: int, a: int) -> bool
|
|
34
|
+
\end{lstlisting}
|
|
35
|
+
\end{tabular}
|
|
36
|
+
|
|
37
|
+
\Precondition
|
|
38
|
+
El paràmetre @a@ està entre 1800 i 9999, ambdós inclosos.
|
|
39
|
+
|
|
40
|
+
\ObservationNoMain
|