MIT License

项目介绍

online-judge-tools/oj 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 MIT License 许可证,目前获得 1.2k 个 Star、111 次 Fork。

仓库全名
online-judge-tools/oj
开源许可证
MIT License
Star 数
1.2k
Fork 数
111
未关闭 Issue
34

README 摘要

online-judge-tools/oj 日本語版の README.md oj is a command to help solving problems on various online judges. This command automates downloading sample cases, generating additional test cases, testing for your code, and submitting it. Screencast Features Download sample cases Download system test cases Login Submit your code Test your code Test your code for reactive problems Generate input files from generators Generate…

完整内容见 GitHub 原始 README 或本页 。

常见问题

oj 用什么语言开发?

主要使用 Python 编写,采用 MIT License 许可证,目前有 1.2k 个 Star。

oj 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 oj 的源码?

可以直接克隆仓库:git clone https://github.com/online-judge-tools/oj.git,默认分支为 master;安装与运行步骤见仓库 README。

oj 最近还在维护吗?

仓库最近一次更新为 2024年5月3日,当前有 34 个未关闭 Issue;Star 数为 1.2k,可作为社区活跃度的参考。

简要分析

热度分
1415
价值分
738
活跃状态
活跃

语言占比

Python

Release

README

online-judge-tools/oj

test PyPI Downloads PyPI Join the chat at https://gitter.im/online-judge-tools/community

日本語版の README.md

oj is a command to help solving problems on various online judges. This command automates downloading sample cases, generating additional test cases, testing for your code, and submitting it.

Screencast

screencast

Features

  • Download sample cases
  • Download system test cases
  • Login
  • Submit your code
  • Test your code
  • Test your code for reactive problems
  • Generate input files from generators
  • Generate output files from input and reference implementation

For the detailed documentation, read docs/getting-started.md.

Many online judges (Codeforces, AtCoder, HackerRank, etc.) are supported. For the full list, see the table of online-judge-tools/api-client.

How to install

The package is https://pypi.python.org/pypi/online-judge-tools PyPI.

$ pip3 install online-judge-tools

For detailed instructions, read docs/INSTALL.md.

How to use

$ oj download [--system] URL
$ oj login URL
$ oj submit [URL] FILE
$ oj test [-c COMMAND] [TEST...]
$ oj test-reactive [-c COMMAND] JUDGE_COMMAND
$ oj generate-input GENERATOR_COMMAND
$ oj generate-output [-c COMMAND] [TEST...]

For details, see $ oj --help.

Example

$ oj download http://agc001.contest.atcoder.jp/tasks/agc001_a
[INFO] online-judge-tools 11.2.0 (+ online-judge-api-client 10.8.0)
[INFO] load cookie from: /home/user/.local/share/online-judge-tools/cookie.jar
[NETWORK] GET: https://atcoder.jp/contests/agc001/tasks/agc001_a
[NETWORK] 200 OK

[INFO] sample 0
[INFO] input: sample-1
2
1 3 1 2

[SUCCESS] saved to: test/sample-1.in
[INFO] output: sample-1
3

[SUCCESS] saved to: test/sample-1.out

[INFO] sample 1
[INFO] input: sample-2
5
100 1 2 3 14 15 58 58 58 29

[SUCCESS] saved to: test/sample-2.in
[INFO] output: sample-2
135

[SUCCESS] saved to: test/sample-2.out

$ cat <<EOF > main.py
#!/usr/bin/env python3
n = int(input())
a = list(map(int, input().split()))
ans = max(a)
print(ans)
EOF

$ oj t -c "python3 main.py"
[INFO] online-judge-tools 11.2.0 (+ online-judge-api-client 10.8.0)
[INFO] 2 cases found

[INFO] sample-1
[INFO] time: 0.043601 sec
[SUCCESS] AC

[INFO] sample-2
[INFO] time: 0.043763 sec
[FAILURE] WA
input:
5
100 1 2 3 14 15 58 58 58 29

output:
3

expected:
135


[INFO] slowest: 0.043763 sec  (for sample-2)
[INFO] max memory: 10.064000 MB  (for sample-2)
[FAILURE] test failed: 1 AC / 2 cases

FAQ

  • Can I use Python (or Rust, D, Java, F#, Haskell, etc.) instead of C++?
    • Yes. Please use --command (-c) option if needed. For example, for Python, you can run $ oj t -c "python3 main.py".
  • I usually make one directory per one contest (or, site). Can I keep using this style?
    • Yes, you can use the --directory (-d) option or $ rm -rf test/. However, we don’t recommend this style, because you should make additional test cases by yourself and run stress tests to maximize your rating.
  • Can I download all sample cases of all problems at once?
  • Can I automatically compile my source code before testing?
    • Yes, use your shell. Run $ g++ main.cpp && oj t.
  • Can I automatically submit code after it passes tests?
    • Yes, use your shell. Run $ oj t && oj s main.cpp. By the way, you need to take care of problems whose sample cases are not so strong.
  • Can I remove the delays and the [y/N] confirmation before submitting code?
    • Yes, put --wait=0 option and --yes option to oj s subcommand. Of course, we don’t recommend this. These options exist for failsafe. For example, please consider a situation where if you save 3 seconds, you will move up 3 places on the standings. In such a case, if you get a penalty of 5 minutes, then you will move down at least 300 places on the standings.
  • Are my passwords stored?
  • Does the config file exist?
    • No. You can use your .bashrc (or similar files) instead. It’s a config file of your shell. Read man bash and write shell aliases or shell functions. For example, if you want to use Python code for tests by default, write alias oj-test-python='oj t -c "python3 main.py"' to .bashrc and use $ oj-test-python.

For other questions, use Gitter Join the chat at https://gitter.im/online-judge-tools/community or other SNSs.

Resources

conflicted:

not conflicted:

projects collaborating with kmyk/online-judge-tools:

Maintainers

License

MIT License

评论

暂无评论