|
@@ -11,3 +11,64 @@
|
|
|
* Smart veredict reporting (OK, WA, RTE, TLE, CE)
|
|
|
* Stressing solution against brute using a generator (Useful to find corner cases)
|
|
|
* (WIP) Automatic generator creation from inputs/outputs structure
|
|
|
+
|
|
|
+## How am I supposed to use **acmX**
|
|
|
+
|
|
|
+**acmX** have been designed to run automatically boilerplate actions [I](https://codeforces.com/profile/marX) repeat often in competitive programming. This is the expected pipeline to interact with it.
|
|
|
+
|
|
|
+* Create a contest calling `New Contest` or maybe a single problem calling `New Problem`. Testcases are downloaded automatically :)
|
|
|
+
|
|
|
+* Start coding awesome solution inside file `sol.cpp`. Right now solutions are only available in C++.
|
|
|
+
|
|
|
+* After you finish the code call `Run` and automatically your program will be compiled and run against every testcases. If the solutions seems to be ok, it will be reported otherwise you will see failing testcase in a *cool layout*. You can always go back to original layout calling `View: Code`.
|
|
|
+
|
|
|
+* Add more testcases than provided in statement using `Add Test Case`, or modify and see existing testcases by calling `Open Test Case`.
|
|
|
+
|
|
|
+* If your solution keep failing you can stress it using a generator and a brute solution. Call `Upgrage` to create both generator (`attic/gen.py`) and correct (`brute.cpp`) programs. Right now generator must be written in python, and correct program must be written in C++. After both codes are ready just call `Stress` and your original code will be tested on random test cases from generator against correct solution.
|
|
|
+
|
|
|
+The environment structure is the following:
|
|
|
+
|
|
|
+```file
|
|
|
+ contest/
|
|
|
+ problemA/
|
|
|
+ sol.cpp
|
|
|
+ brute.cpp
|
|
|
+ attic/
|
|
|
+ sol
|
|
|
+ brout
|
|
|
+ gen.py
|
|
|
+ testcases/
|
|
|
+ 1.in
|
|
|
+ 1.out
|
|
|
+ 1.real
|
|
|
+ ...
|
|
|
+ problemB/...
|
|
|
+ problemC/...
|
|
|
+ problemD/...
|
|
|
+ problemE/...
|
|
|
+```
|
|
|
+
|
|
|
+Certainly **acmX** can be (and hopefully will be) extended so that it fits everyones pipeline. If **acmX** almost fit yours, feel free to improve it and make a PR! I'll be happy to hear from you and give you support.
|
|
|
+
|
|
|
+## Default template is awful, how can I change it
|
|
|
+
|
|
|
+Create a file with your template. In settings change `acmx.configuration.templatePath` to the path of your templates file.
|
|
|
+
|
|
|
+## Commands
|
|
|
+
|
|
|
+* acmx.addProblem (**New Problem**):
|
|
|
+* acmx.addContest (**New Contest**):
|
|
|
+* acmx.runSolution (**Run**):
|
|
|
+* acmx.openTestcase (**Open Test Case**):
|
|
|
+* acmx.addTestcase (**Add Test Case**):
|
|
|
+* acmx.coding (**View: Code**):
|
|
|
+* acmx.stress (**Stress**):
|
|
|
+* acmx.upgrade (**Upgrade**):
|
|
|
+* acmx.compile (**Compile**):
|
|
|
+
|
|
|
+## Settings
|
|
|
+
|
|
|
+* **acmx.configuration.templatePath**: Path to template file. Leave empty to use default template.
|
|
|
+* **acmx.run.timetimeLimit**: Maximum time limit in seconds to run the program on each test case.
|
|
|
+* **acmx.execution.compileCpp**: Command to compile C++ programs. Refer to the code as $PROGRAM, and output file as $OUTPUT.
|
|
|
+* **acmx.execution.pythonPath**: Path to python executable. This will be used to run generator.
|