AutoSetter: from a statement screenshot to a Polygon package
Hello, Codeforces-style readers!
Anyone who has set a problem knows the statement is the easy part. After it come the validator, the checker, a main solution, some wrong solutions that must fail, tests that reach the limits, and finally uploading it all to Polygon by hand.
AutoSetter is our attempt to automate that. You give it a picture or PDF of a problem statement, and it gives back a complete Polygon package:
problem.json: the statement read into a structured spec (title, story, input/output format, constraints, samples, limits)- a statement, a C++17 main solution, plus greedy, brute-force and heavy solutions
- a testlib
validator.cppandchecker.cpp - tests generated with Z3 from a declarative spec, including max-size cases
- a validation report and a
manifest.jsonsaying whether the package is fit to release
Before generating anything, it checks a vector database of existing problems. If the problem already exists, you get the link and no package. Otherwise it can push the package to Polygon with your API key.
This page explains how the project works inside. It is not a product page.