ojcmp
online judge comparer
Status
Maintaining 0.3.1
Install
Build
Install by cargo
Install manually
Usage
ojcmp 0.3.1
Nugine <nugine@foxmail.com>
USAGE:
ojcmp <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
float Float compare
help Prints this message or the help of the given subcommand(s)
normal Normal compare
strict Strict compare
Return Value
| type | value |
|---|---|
| code | errno |
| stdout | "AC" / "WA" / "PE" |
| stderr | error message |
Current Implementation
Mode: Normal
trim_end(file)
judge!;
for each line, trim_end(line)
judge!;
for each line, check spaces between non-space chars
judge!;
Mode: Strict
User file must have the same bytes with std file.
The two byte streams must be exactly the same.
There is no "PE" in this mode.
Mode: Float
Compare two streams of float numbers which are splitted by ascii whitespaces.
Parse any float number as f64 (aka double in C language).
Ascii whitespaces between two float numbers are considered as a single separator symbol.
Use CLI option --eps to specify eps value, for example --eps 1e-3.
There is no "PE" in this mode.
Change Log
- v0.3.1 Fix performance regression since v0.2.0. Allow unsafe code.
- v0.3.0 Forbid unsafe code. Use subcommands for different modes.
- v0.2.2 Fix bug in nan handling. (yank v0.2.1)
- v0.2.1 Add spj_float mode. (yanked)
- v0.2.0 Add strict mode. No break changes.
- v0.1.3 No functional changes
- v0.1.2 Fix algorithm bug
- v0.1.1 Use unsafe static buffer