@jpetit/toolkit 3.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.
Files changed (192) hide show
  1. package/.prettierignore +11 -0
  2. package/.prettierrc.json +9 -0
  3. package/.vscode/settings.json +26 -0
  4. package/README.md +22 -0
  5. package/assets/lua/fixCodeBlocks.lua +19 -0
  6. package/assets/lua/removeEnvs.lua +20 -0
  7. package/assets/lua/removeHtmlOnly.lua +11 -0
  8. package/assets/problems/graphics/japanese-flag.pbm/README.md +14 -0
  9. package/assets/problems/graphics/japanese-flag.pbm/award.png +0 -0
  10. package/assets/problems/graphics/japanese-flag.pbm/handler.yml +2 -0
  11. package/assets/problems/graphics/japanese-flag.pbm/problem.ca.tex +21 -0
  12. package/assets/problems/graphics/japanese-flag.pbm/problem.ca.yml +3 -0
  13. package/assets/problems/graphics/japanese-flag.pbm/sample-1.inp +1 -0
  14. package/assets/problems/graphics/japanese-flag.pbm/sample-2.inp +1 -0
  15. package/assets/problems/graphics/japanese-flag.pbm/solution.cc +25 -0
  16. package/assets/problems/graphics/japanese-flag.pbm/solution.py +11 -0
  17. package/assets/problems/graphics/tortuga.pbm/README.md +13 -0
  18. package/assets/problems/graphics/tortuga.pbm/award.png +0 -0
  19. package/assets/problems/graphics/tortuga.pbm/handler.yml +2 -0
  20. package/assets/problems/graphics/tortuga.pbm/problem.ca.tex +23 -0
  21. package/assets/problems/graphics/tortuga.pbm/problem.ca.yml +3 -0
  22. package/assets/problems/graphics/tortuga.pbm/sample.inp +0 -0
  23. package/assets/problems/graphics/tortuga.pbm/solution.py +11 -0
  24. package/assets/problems/standard/campanar-de-la-torrassa.pbm/README.md +15 -0
  25. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.html +1 -0
  26. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.png +0 -0
  27. package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.eps +1113 -0
  28. package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.png +0 -0
  29. package/assets/problems/standard/campanar-de-la-torrassa.pbm/generate.cc +10 -0
  30. package/assets/problems/standard/campanar-de-la-torrassa.pbm/handler.yml +2 -0
  31. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.tex +59 -0
  32. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.yml +3 -0
  33. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.tex +52 -0
  34. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.yml +4 -0
  35. package/assets/problems/standard/campanar-de-la-torrassa.pbm/sample.inp +7 -0
  36. package/assets/problems/standard/campanar-de-la-torrassa.pbm/slow.cc +29 -0
  37. package/assets/problems/standard/campanar-de-la-torrassa.pbm/solution.cc +48 -0
  38. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-1.inp +12 -0
  39. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.inp +100000 -0
  40. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.ops +1 -0
  41. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-b.inp +0 -0
  42. package/assets/problems/standard/maximum-of-2-integers.pbm/README.md +11 -0
  43. package/assets/problems/standard/maximum-of-2-integers.pbm/handler.yml +1 -0
  44. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.tex +17 -0
  45. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.yml +3 -0
  46. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.tex +16 -0
  47. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.yml +4 -0
  48. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-1.inp +1 -0
  49. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-2.inp +1 -0
  50. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-3.inp +1 -0
  51. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.c +18 -0
  52. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.cc +13 -0
  53. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.java +16 -0
  54. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.py +5 -0
  55. package/assets/problems/standard/maximum-of-2-integers.pbm/test-1.inp +1 -0
  56. package/assets/problems/standard/maximum-of-2-integers.pbm/test-2.inp +1 -0
  57. package/assets/problems/standard/maximum-of-2-integers.pbm/test-3.inp +1 -0
  58. package/assets/problems/standard/maximum-of-2-integers.pbm/test-4.inp +1 -0
  59. package/assets/problems/standard/maximum-of-2-integers.pbm/test-5.inp +1 -0
  60. package/assets/problems/standard/treasures-in-a-map.pbm/README.md +12 -0
  61. package/assets/problems/standard/treasures-in-a-map.pbm/atzar.cc +85 -0
  62. package/assets/problems/standard/treasures-in-a-map.pbm/award.png +0 -0
  63. package/assets/problems/standard/treasures-in-a-map.pbm/generate-1.cc +26 -0
  64. package/assets/problems/standard/treasures-in-a-map.pbm/generate-2.cc +26 -0
  65. package/assets/problems/standard/treasures-in-a-map.pbm/generate-3.cc +26 -0
  66. package/assets/problems/standard/treasures-in-a-map.pbm/generate-4.cc +26 -0
  67. package/assets/problems/standard/treasures-in-a-map.pbm/handler.yml +1 -0
  68. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.tex +40 -0
  69. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.yml +3 -0
  70. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.tex +40 -0
  71. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.yml +4 -0
  72. package/assets/problems/standard/treasures-in-a-map.pbm/random-1.inp +24 -0
  73. package/assets/problems/standard/treasures-in-a-map.pbm/random-2.inp +27 -0
  74. package/assets/problems/standard/treasures-in-a-map.pbm/random-3.inp +38 -0
  75. package/assets/problems/standard/treasures-in-a-map.pbm/random-4.inp +50 -0
  76. package/assets/problems/standard/treasures-in-a-map.pbm/sample-1.inp +9 -0
  77. package/assets/problems/standard/treasures-in-a-map.pbm/sample-2.inp +6 -0
  78. package/assets/problems/standard/treasures-in-a-map.pbm/sample-3.inp +7 -0
  79. package/assets/problems/standard/treasures-in-a-map.pbm/solution.cc +38 -0
  80. package/assets/problems/standard/treasures-in-a-map.pbm/test-1.inp +5 -0
  81. package/assets/problems/standard/treasures-in-a-map.pbm/test-2.inp +6 -0
  82. package/assets/problems/standard/treasures-in-a-map.pbm/test-3.inp +6 -0
  83. package/assets/problems/standard/treasures-in-a-map.pbm/test-4.inp +9 -0
  84. package/assets/problems/standard/treasures-in-a-map.pbm/test-5.inp +10 -0
  85. package/assets/problems/standard/treasures-in-a-map.pbm/test-6.inp +9 -0
  86. package/assets/problems/standard/treasures-in-a-map.pbm/test-7.inp +12 -0
  87. package/assets/problems/standard/treasures-in-a-map.pbm/test-8.inp +3 -0
  88. package/assets/problems/standard/treasures-in-a-map.pbm/test-9.inp +37 -0
  89. package/assets/problems/standard/treasures-in-a-map.pbm/test-91.inp +52 -0
  90. package/assets/problems/standard/treasures-in-a-map.pbm/test-92.inp +25 -0
  91. package/assets/problems/standard/treasures-in-a-map.pbm/test-93.inp +3 -0
  92. package/assets/sty/judgeit.ca.sty +54 -0
  93. package/assets/sty/judgeit.de.sty +61 -0
  94. package/assets/sty/judgeit.en.sty +60 -0
  95. package/assets/sty/judgeit.es.sty +54 -0
  96. package/assets/sty/judgeit.fr.sty +59 -0
  97. package/assets/sty/judgeit.sty +307 -0
  98. package/assets/sty/picins.sty +579 -0
  99. package/assets.zip +0 -0
  100. package/eslint.config.mjs +31 -0
  101. package/lib/ai.ts +138 -0
  102. package/lib/assets.ts +31 -0
  103. package/lib/cleaner.ts +58 -0
  104. package/lib/compilers/_frompython.ts +388 -0
  105. package/lib/compilers/base.ts +97 -0
  106. package/lib/compilers/gcc.ts +47 -0
  107. package/lib/compilers/gxx.ts +47 -0
  108. package/lib/compilers/index.ts +61 -0
  109. package/lib/compilers/python3.ts +67 -0
  110. package/lib/data.ts +19 -0
  111. package/lib/doctor.ts +104 -0
  112. package/lib/generate.ts +333 -0
  113. package/lib/maker.ts +535 -0
  114. package/lib/settings.ts +42 -0
  115. package/lib/tui.ts +69 -0
  116. package/lib/utils.ts +83 -0
  117. package/package.json +56 -0
  118. package/problems/graphic.pbm/README.md +14 -0
  119. package/problems/graphic.pbm/award.png +0 -0
  120. package/problems/graphic.pbm/handler.yml +2 -0
  121. package/problems/graphic.pbm/problem.ca.html +13 -0
  122. package/problems/graphic.pbm/problem.ca.md +20 -0
  123. package/problems/graphic.pbm/problem.ca.tex +21 -0
  124. package/problems/graphic.pbm/problem.ca.txt +20 -0
  125. package/problems/graphic.pbm/problem.ca.yml +3 -0
  126. package/problems/graphic.pbm/sample-1.inp +1 -0
  127. package/problems/graphic.pbm/sample-2.inp +1 -0
  128. package/problems/graphic.pbm/solution.py +11 -0
  129. package/problems/maxim2.pbm/Main.java +13 -0
  130. package/problems/maxim2.pbm/distillation.yml +7 -0
  131. package/problems/maxim2.pbm/distilled-01.inp +1 -0
  132. package/problems/maxim2.pbm/distilled-02.inp +1 -0
  133. package/problems/maxim2.pbm/distilled-03.inp +1 -0
  134. package/problems/maxim2.pbm/distiller.yml +2 -0
  135. package/problems/maxim2.pbm/generate-inputs.py +9 -0
  136. package/problems/maxim2.pbm/handler.yml +2 -0
  137. package/problems/maxim2.pbm/ma-1.inp +1 -0
  138. package/problems/maxim2.pbm/ma-2.inp +1 -0
  139. package/problems/maxim2.pbm/ma-3.inp +1 -0
  140. package/problems/maxim2.pbm/ma-4.inp +1 -0
  141. package/problems/maxim2.pbm/ma-5.inp +1 -0
  142. package/problems/maxim2.pbm/per-doubles.inp +1 -0
  143. package/problems/maxim2.pbm/problem.ca.html +11 -0
  144. package/problems/maxim2.pbm/problem.ca.md +19 -0
  145. package/problems/maxim2.pbm/problem.ca.tex +17 -0
  146. package/problems/maxim2.pbm/problem.ca.txt +19 -0
  147. package/problems/maxim2.pbm/problem.ca.yml +3 -0
  148. package/problems/maxim2.pbm/problem.en.html +11 -0
  149. package/problems/maxim2.pbm/problem.en.md +19 -0
  150. package/problems/maxim2.pbm/problem.en.tex +16 -0
  151. package/problems/maxim2.pbm/problem.en.txt +19 -0
  152. package/problems/maxim2.pbm/problem.en.yml +4 -0
  153. package/problems/maxim2.pbm/sample-1.inp +1 -0
  154. package/problems/maxim2.pbm/sample-2.inp +1 -0
  155. package/problems/maxim2.pbm/sample-3.inp +1 -0
  156. package/problems/maxim2.pbm/solution.c +12 -0
  157. package/problems/maxim2.pbm/solution.cc +13 -0
  158. package/problems/maxim2.pbm/solution.java +13 -0
  159. package/problems/maxim2.pbm/solution.pas +9 -0
  160. package/problems/maxim2.pbm/solution.py +5 -0
  161. package/problems/maxim2.pbm/tags.yml +2 -0
  162. package/problems/maxim2.pbm/test_-1_-1.inp +1 -0
  163. package/problems/maxim2.pbm/test_-1_-2.inp +1 -0
  164. package/problems/maxim2.pbm/test_-1_0.inp +1 -0
  165. package/problems/maxim2.pbm/test_-1_1.inp +1 -0
  166. package/problems/maxim2.pbm/test_-2_-1.inp +1 -0
  167. package/problems/maxim2.pbm/test_-2_-2.inp +1 -0
  168. package/problems/maxim2.pbm/test_-2_0.inp +1 -0
  169. package/problems/maxim2.pbm/test_-2_1.inp +1 -0
  170. package/problems/maxim2.pbm/test_0_-1.inp +1 -0
  171. package/problems/maxim2.pbm/test_0_-2.inp +1 -0
  172. package/problems/maxim2.pbm/test_0_0.inp +1 -0
  173. package/problems/maxim2.pbm/test_0_1.inp +1 -0
  174. package/problems/maxim2.pbm/test_1_-1.inp +1 -0
  175. package/problems/maxim2.pbm/test_1_-2.inp +1 -0
  176. package/problems/maxim2.pbm/test_1_0.inp +1 -0
  177. package/problems/maxim2.pbm/test_1_1.inp +1 -0
  178. package/test.ts +3 -0
  179. package/toolkit/ai.ts +30 -0
  180. package/toolkit/clean.ts +19 -0
  181. package/toolkit/compilers.ts +29 -0
  182. package/toolkit/create-jutge-ai.ts +101 -0
  183. package/toolkit/create-template.ts +51 -0
  184. package/toolkit/create-wizard.ts +4 -0
  185. package/toolkit/create.ts +75 -0
  186. package/toolkit/doctor.ts +17 -0
  187. package/toolkit/index.ts +28 -0
  188. package/toolkit/init.ts +66 -0
  189. package/toolkit/make.ts +60 -0
  190. package/toolkit/verify.ts +19 -0
  191. package/tsconfig.json +38 -0
  192. package/types/zip.d.ts +4 -0
package/lib/utils.ts ADDED
@@ -0,0 +1,83 @@
1
+ import humanId from 'human-id'
2
+ import { customAlphabet } from 'nanoid'
3
+
4
+ export async function readYaml(path: string): Promise<any> {
5
+ const file = Bun.file(path)
6
+ if (!(await file.exists())) {
7
+ throw new Error(`File '${path}' not found`)
8
+ }
9
+ const content = await file.text()
10
+ return Bun.YAML.parse(content)
11
+ }
12
+
13
+ export async function readJson(path: string): Promise<any> {
14
+ const file = Bun.file(path)
15
+ if (!(await file.exists())) {
16
+ throw new Error(`File '${path}' not found`)
17
+ }
18
+ const content = await file.text()
19
+ return JSON.parse(content)
20
+ }
21
+
22
+ export async function fileSize(path: string): Promise<number> {
23
+ const file = Bun.file(path)
24
+ const stat = await file.stat()
25
+ return stat.size
26
+ }
27
+
28
+ export async function filesAreEqual(path1: string, path2: string): Promise<boolean> {
29
+ const file1 = Bun.file(path1)
30
+ const file2 = Bun.file(path2)
31
+ const bytes1 = await file1.bytes()
32
+ const bytes2 = await file2.bytes()
33
+ return bytes1.length === bytes2.length && bytes1.every((b, i) => b === bytes2[i])
34
+ }
35
+
36
+ // Guess user name from git config
37
+ export async function guessUserName(): Promise<string | null> {
38
+ try {
39
+ const output = await Bun.$`git config user.name`.nothrow().text()
40
+ const name = output.trim()
41
+ if (name === '') return null
42
+ return name
43
+ } catch (e) {
44
+ return null
45
+ }
46
+ }
47
+
48
+ // Guess user email from git config
49
+ export async function guessUserEmail(): Promise<string | null> {
50
+ try {
51
+ const output = await Bun.$`git config user.email`.nothrow().text()
52
+ const email = output.trim()
53
+ if (email === '') return null
54
+ return email
55
+ } catch (e) {
56
+ return null
57
+ }
58
+ }
59
+
60
+ export function nanoid16(): string {
61
+ const alphabet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
62
+ const nanoid = customAlphabet(alphabet, 16)
63
+ return nanoid()
64
+ }
65
+
66
+ export function nanoid12(): string {
67
+ const alphabet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
68
+ const nanoid = customAlphabet(alphabet, 12)
69
+ return nanoid()
70
+ }
71
+
72
+ export function nanoid8(): string {
73
+ const alphabet = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
74
+ const nanoid = customAlphabet(alphabet, 8)
75
+ return nanoid()
76
+ }
77
+
78
+ export function humanid(): string {
79
+ return humanId({
80
+ separator: '-',
81
+ capitalize: false,
82
+ })
83
+ }
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@jpetit/toolkit",
3
+ "version": "3.0.0",
4
+ "module": "index.ts",
5
+ "type": "module",
6
+ "private": false,
7
+ "bin": "toolkit/index.ts",
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "scripts": {
12
+ "build": "bun run build-assets && bun build toolkit --compile --outfile toolkit.exe",
13
+ "build-assets": "rm assets.zip && zip assets.zip -r assets",
14
+ "lint": "eslint .",
15
+ "format": "bun prettier . --write",
16
+ "depcheck": "bunx depcheck --ignores='bun,bun:test'"
17
+ },
18
+ "dependencies": {
19
+ "@eslint/js": "^9.39.2",
20
+ "@inquirer/prompts": "^8.1.0",
21
+ "boxen": "^8.0.1",
22
+ "bun-types": "^1.3.5",
23
+ "chalk": "^5.6.2",
24
+ "commander": "^14.0.2",
25
+ "env-paths": "^3.0.0",
26
+ "eslint": "^9.39.2",
27
+ "fflate": "^0.8.2",
28
+ "gpt-tokenizer": "^3.4.0",
29
+ "human-id": "^4.1.3",
30
+ "image-size": "^2.0.2",
31
+ "marked": "^17.0.1",
32
+ "marked-terminal": "^7.3.0",
33
+ "multi-llm-ts": "^4.6.2",
34
+ "nanoid": "^5.1.6",
35
+ "ora": "^9.0.0",
36
+ "prettier": "^3.7.4",
37
+ "pretty-bytes": "^7.1.0",
38
+ "pretty-ms": "^9.3.0",
39
+ "radash": "^12.1.1",
40
+ "slug": "^11.0.1",
41
+ "typescript-eslint": "^8.50.0",
42
+ "zod": "^4.2.1"
43
+ },
44
+ "devDependencies": {
45
+ "@types/image-size": "^0.8.0",
46
+ "@types/marked": "^6.0.0",
47
+ "@types/marked-terminal": "^6.1.1",
48
+ "@types/ora": "^3.2.0",
49
+ "@types/bun": "1.3.5",
50
+ "@commander-js/extra-typings": "^14.0.0",
51
+ "@types/slug": "^5.0.9"
52
+ },
53
+ "peerDependencies": {
54
+ "typescript": "^5.9.3"
55
+ }
56
+ }
@@ -0,0 +1,14 @@
1
+ # Japanese flag
2
+
3
+ ## Features
4
+
5
+ - Graphic problem: write an image
6
+ - Solutions in multiple programming languages: Python3 and C++
7
+ - Use of the `turtle` module
8
+ - Use of the `cairo` library
9
+ - Award in `.png`
10
+ - No input to be read
11
+
12
+ ## Abstract
13
+
14
+ Draw a Japanese flag.
Binary file
@@ -0,0 +1,2 @@
1
+ handler: graphic
2
+ solution: Python3
@@ -0,0 +1,13 @@
1
+ <h1 id="bandera-del-japó">Bandera del Japó</h1>
2
+ <p>Feu un programa que dibuixi la bandera del Japó.</p>
3
+ <h2 class="unnumbered" id="entrada">Entrada</h2>
4
+ <p>Aquest problema no té entrada.</p>
5
+ <h2 class="unnumbered" id="sortida">Sortida</h2>
6
+ <p>Cal generar una imatge
7
+ <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo stretchy="false" form="prefix">(</mo><mn>600</mn><mo>,</mo><mn>400</mn><mo stretchy="false" form="postfix">)</mo></mrow><annotation encoding="application/x-tex">(600, 400)</annotation></semantics></math>
8
+ de fons ‘<code>White</code>’, i amb un cercle centrat de diàmetre 300 i
9
+ color ‘<code>Crimson</code>’.</p>
10
+ <h2 class="unnumbered" id="autor">Autor</h2>
11
+ <p>Salvador Roura</p>
12
+ <h2 class="unnumbered" id="draft">Draft</h2>
13
+ <p>Draft generated with <strong>new-jutge-toolkit</strong>.</p>
@@ -0,0 +1,20 @@
1
+ # Bandera del Japó
2
+
3
+ Feu un programa que dibuixi la bandera del Japó.
4
+
5
+ ## Entrada
6
+
7
+ Aquest problema no té entrada.
8
+
9
+ ## Sortida
10
+
11
+ Cal generar una imatge $(600, 400)$ de fons '`White`', i amb un cercle
12
+ centrat de diàmetre 300 i color '`Crimson`'.
13
+
14
+ ## Autor
15
+
16
+ Salvador Roura
17
+
18
+ ## Draft
19
+
20
+ Draft generated with **new-jutge-toolkit**.
@@ -0,0 +1,21 @@
1
+
2
+ \Problem{Bandera del Japó}
3
+
4
+ \Statement
5
+
6
+ Feu un programa que dibuixi la bandera del Japó.
7
+
8
+
9
+ \Input
10
+
11
+ Aquest problema no té entrada.
12
+
13
+
14
+ \Output
15
+
16
+ Cal generar una imatge $(600, 400)$ de fons \q{White},
17
+ i amb un cercle centrat de diàmetre 300 i color \q{Crimson}.
18
+
19
+
20
+ \SampleTwoCol
21
+
@@ -0,0 +1,20 @@
1
+ Bandera del Japó
2
+
3
+ Feu un programa que dibuixi la bandera del Japó.
4
+
5
+ Entrada
6
+
7
+ Aquest problema no té entrada.
8
+
9
+ Sortida
10
+
11
+ Cal generar una imatge (600, 400) de fons ‘White’, i amb un cercle
12
+ centrat de diàmetre 300 i color ‘Crimson’.
13
+
14
+ Autor
15
+
16
+ Salvador Roura
17
+
18
+ Draft
19
+
20
+ Draft generated with new-jutge-toolkit.
@@ -0,0 +1,3 @@
1
+ email: roura@lsi.upc.edu
2
+ title: Bandera del Japó
3
+ author: Salvador Roura
@@ -0,0 +1 @@
1
+ Aquest problema no te entrada.
@@ -0,0 +1 @@
1
+ De debo, aqui l'entrada no importa.
@@ -0,0 +1,11 @@
1
+ from PIL import Image, ImageDraw
2
+
3
+
4
+ img = Image.new('RGB', (600, 400), 'White')
5
+ dib = ImageDraw.Draw(img)
6
+
7
+
8
+ dib.ellipse([150, 50, 449, 349], 'Crimson')
9
+
10
+
11
+ img.save("output.png")
@@ -0,0 +1,13 @@
1
+ import java.io.*;
2
+ import java.util.*;
3
+
4
+ class Main {
5
+
6
+ public static void main (String[] args) {
7
+ Scanner in = new Scanner(System.in);
8
+ int a = in.nextInt();
9
+ int b = in.nextInt();
10
+ if (a > b) System.out.println(a); else System.out.println(b);
11
+ }
12
+
13
+ }
@@ -0,0 +1,7 @@
1
+ cov: 100.0
2
+ nd: 3
3
+ ne: 25
4
+ ns: 64
5
+ nt: 25
6
+ tim: 0.18s
7
+ time: '2016-12-12 16:36:48'
@@ -0,0 +1 @@
1
+ 1000000000 500000000
@@ -0,0 +1 @@
1
+ 0 0
@@ -0,0 +1 @@
1
+ -1 -2
@@ -0,0 +1,2 @@
1
+ input: OneChunk
2
+ output: OneChunk
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/python
2
+ # -*- coding: latin1 -*-
3
+
4
+
5
+ import os
6
+
7
+ for a in range(-2, 2):
8
+ for b in range(-2, 2):
9
+ os.system("echo %i %i > prova_%i_%i.ent" % (a, b, a, b))
@@ -0,0 +1,2 @@
1
+ handler: std
2
+ source_modifier: none
@@ -0,0 +1 @@
1
+ 4312 47465
@@ -0,0 +1 @@
1
+ -12345 -987
@@ -0,0 +1 @@
1
+ 987654321 -987654321
@@ -0,0 +1 @@
1
+ 137 0
@@ -0,0 +1 @@
1
+ 0 -651
@@ -0,0 +1 @@
1
+ 1000000000 500000000
@@ -0,0 +1,11 @@
1
+ <h1 id="màxim-de-dos-enters">Màxim de dos enters</h1>
2
+ <p>Feu un programa que llegeixi dos nombres i que n’escrigui el
3
+ màxim.</p>
4
+ <h2 class="unnumbered" id="entrada">Entrada</h2>
5
+ <p>L’entrada consisteix en dos enters.</p>
6
+ <h2 class="unnumbered" id="sortida">Sortida</h2>
7
+ <p>Cal escriure una línia amb el màxim dels dos nombres.</p>
8
+ <h2 class="unnumbered" id="autor">Autor</h2>
9
+ <p>Jordi Petit</p>
10
+ <h2 class="unnumbered" id="draft">Draft</h2>
11
+ <p>Draft generated with <strong>new-jutge-toolkit</strong>.</p>
@@ -0,0 +1,19 @@
1
+ # Màxim de dos enters
2
+
3
+ Feu un programa que llegeixi dos nombres i que n'escrigui el màxim.
4
+
5
+ ## Entrada
6
+
7
+ L'entrada consisteix en dos enters.
8
+
9
+ ## Sortida
10
+
11
+ Cal escriure una línia amb el màxim dels dos nombres.
12
+
13
+ ## Autor
14
+
15
+ Jordi Petit
16
+
17
+ ## Draft
18
+
19
+ Draft generated with **new-jutge-toolkit**.
@@ -0,0 +1,17 @@
1
+ \Problem{Màxim de dos enters}
2
+
3
+
4
+ \Statement
5
+
6
+ Feu un programa que llegeixi dos nombres i que n'escrigui el màxim.
7
+
8
+ \Input
9
+
10
+ L'entrada consisteix en dos enters.
11
+
12
+ \Output
13
+
14
+ Cal escriure una línia amb el màxim dels dos nombres.
15
+
16
+ \Sample
17
+
@@ -0,0 +1,19 @@
1
+ Màxim de dos enters
2
+
3
+ Feu un programa que llegeixi dos nombres i que n’escrigui el màxim.
4
+
5
+ Entrada
6
+
7
+ L’entrada consisteix en dos enters.
8
+
9
+ Sortida
10
+
11
+ Cal escriure una línia amb el màxim dels dos nombres.
12
+
13
+ Autor
14
+
15
+ Jordi Petit
16
+
17
+ Draft
18
+
19
+ Draft generated with new-jutge-toolkit.
@@ -0,0 +1,3 @@
1
+ email: jpetit@lsi.upc.edu
2
+ title: Màxim de dos enters
3
+ author: Jordi Petit
@@ -0,0 +1,11 @@
1
+ <h1 id="maximum-of-two-integer-numbers">Maximum of two integer
2
+ numbers</h1>
3
+ <p>Write a program that reads two numbers and prints their maximum.</p>
4
+ <h2 class="unnumbered" id="input">Input</h2>
5
+ <p>Input consists of two integer numbers.</p>
6
+ <h2 class="unnumbered" id="output">Output</h2>
7
+ <p>Print a line with the maximum of the two numbers.</p>
8
+ <h2 class="unnumbered" id="author">Author</h2>
9
+ <p>Unknown (en: Carlos Molina)</p>
10
+ <h2 class="unnumbered" id="draft">Draft</h2>
11
+ <p>Draft generated with <strong>new-jutge-toolkit</strong>.</p>
@@ -0,0 +1,19 @@
1
+ # Maximum of two integer numbers
2
+
3
+ Write a program that reads two numbers and prints their maximum.
4
+
5
+ ## Input
6
+
7
+ Input consists of two integer numbers.
8
+
9
+ ## Output
10
+
11
+ Print a line with the maximum of the two numbers.
12
+
13
+ ## Author
14
+
15
+ Unknown (en: Carlos Molina)
16
+
17
+ ## Draft
18
+
19
+ Draft generated with **new-jutge-toolkit**.
@@ -0,0 +1,16 @@
1
+
2
+ \Problem{Maximum of two integer numbers}
3
+
4
+ \Statement
5
+
6
+ Write a program that reads two numbers and prints their maximum.
7
+
8
+ \Input
9
+
10
+ Input consists of two integer numbers.
11
+
12
+ \Output
13
+
14
+ Print a line with the maximum of the two numbers.
15
+
16
+ \Sample
@@ -0,0 +1,19 @@
1
+ Maximum of two integer numbers
2
+
3
+ Write a program that reads two numbers and prints their maximum.
4
+
5
+ Input
6
+
7
+ Input consists of two integer numbers.
8
+
9
+ Output
10
+
11
+ Print a line with the maximum of the two numbers.
12
+
13
+ Author
14
+
15
+ Unknown (en: Carlos Molina)
16
+
17
+ Draft
18
+
19
+ Draft generated with new-jutge-toolkit.
@@ -0,0 +1,4 @@
1
+ translator: Carlos Molina
2
+ title: Maximum of two integer numbers
3
+ translator_email: cmolinah@gmail.com
4
+ original_language: ca
@@ -0,0 +1 @@
1
+ 634 371
@@ -0,0 +1 @@
1
+ -31 -21
@@ -0,0 +1 @@
1
+ -5 -5
@@ -0,0 +1,12 @@
1
+ #include <stdio.h>
2
+
3
+ int main()
4
+ {
5
+ int a, b;
6
+ if (scanf("%d", &a)) { };
7
+ if (scanf("%d", &b)) { };
8
+ if (a > b)
9
+ printf("%d\n", a);
10
+ else
11
+ printf("%d\n", b);
12
+ }
@@ -0,0 +1,13 @@
1
+ #include <iostream>
2
+ using namespace std;
3
+
4
+ int main()
5
+ {
6
+ int a, b;
7
+ cin >> a >> b;
8
+ if (a > b) {
9
+ cout << a << endl;
10
+ } else {
11
+ cout << b << endl;
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import java.io.*;
2
+ import java.util.*;
3
+
4
+ class Main {
5
+
6
+ public static void main (String[] args) {
7
+ Scanner in = new Scanner(System.in);
8
+ int a = in.nextInt();
9
+ int b = in.nextInt();
10
+ if (a > b) System.out.println(a); else System.out.println(b);
11
+ }
12
+
13
+ }
@@ -0,0 +1,9 @@
1
+ program solucio;
2
+
3
+ var
4
+ a, b: integer;
5
+
6
+ begin
7
+ read(a, b);
8
+ if a > b then writeln(a) else writeln(b);
9
+ end.
@@ -0,0 +1,5 @@
1
+ from yogi import read
2
+
3
+ a = read(int)
4
+ b = read(int)
5
+ print(max(a, b))
@@ -0,0 +1,2 @@
1
+ - author jordi petit
2
+ - basic
@@ -0,0 +1 @@
1
+ -1 -1
@@ -0,0 +1 @@
1
+ -1 -2
@@ -0,0 +1 @@
1
+ -1 0
@@ -0,0 +1 @@
1
+ -1 1
@@ -0,0 +1 @@
1
+ -2 -1
@@ -0,0 +1 @@
1
+ -2 -2
@@ -0,0 +1 @@
1
+ -2 0
@@ -0,0 +1 @@
1
+ -2 1
@@ -0,0 +1 @@
1
+ 0 -1
@@ -0,0 +1 @@
1
+ 0 -2
@@ -0,0 +1 @@
1
+ 0 0
@@ -0,0 +1 @@
1
+ 0 1
@@ -0,0 +1 @@
1
+ 1 -1
@@ -0,0 +1 @@
1
+ 1 -2
@@ -0,0 +1 @@
1
+ 1 0
@@ -0,0 +1 @@
1
+ 1 1
package/test.ts ADDED
@@ -0,0 +1,3 @@
1
+ import envPaths from 'env-paths'
2
+ const paths = envPaths('MyApp')
3
+ console.log(paths.data)