No Description

Marcelo Fornet d29b54d8c5 allow custom template and add guide in readme 6 years ago
.vscode 04fcad8f30 Start vscode extension 6 years ago
images 77da2930e2 change logo name 6 years ago
src d29b54d8c5 allow custom template and add guide in readme 6 years ago
types e083ddc52a Parsing codeforces 6 years ago
.gitattributes 04fcad8f30 Start vscode extension 6 years ago
.gitignore 04fcad8f30 Start vscode extension 6 years ago
.vscodeignore 04fcad8f30 Start vscode extension 6 years ago
CHANGELOG.md efa30d944b acmX 6 years ago
LICENSE 2b08049032 add license and repository 6 years ago
README.md d29b54d8c5 allow custom template and add guide in readme 6 years ago
package-lock.json e083ddc52a Parsing codeforces 6 years ago
package.json d29b54d8c5 allow custom template and add guide in readme 6 years ago
todo.md d29b54d8c5 allow custom template and add guide in readme 6 years ago
tsconfig.json e083ddc52a Parsing codeforces 6 years ago
tslint.json 04fcad8f30 Start vscode extension 6 years ago
vsc-extension-quickstart.md 04fcad8f30 Start vscode extension 6 years ago

README.md

ACMX

acmX is tool that empower contestants to solve competitive programming problems easily.

Features

  • Contest/Problem parsing. Current sites supported:
  • Running solution against testcases automatically
  • Add custom testcases easily
  • 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 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:

    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.