[PYTHON] Automatise la création d'annuaire AtCoder, les tests de cas et la soumission. atcoder-cli et outils de juge en ligne

Voici deux outils CLI pour vous aider à résoudre AtCoder confortablement. L'environnement utilisé dans cette entrée est Windows 10, Python 3. Bien sûr, il prend également en charge d'autres systèmes d'exploitation et langues.

Ce que tu peux faire

Créer un répertoire de concours

Image from Gyazo

Contest ID/  ├ a/  │ └ main.py  │ └ test/  │   └ sample-1.in  │   └ sample-1.out  │   └ sample-2.in  │   └ ...  ├ b/  │ └ main.py  │ └ test/  │   └ ...  └ ...

Exécuter un exemple de test de cas

Image from Gyazo

remettre

Image from Gyazo

Méthode d'introduction

Conditions préalables

Atcoder-cli fonctionne sur node.js et les outils de juge en ligne fonctionnent sur Python, vous devez donc les installer. Si vous ne l'avez pas encore installé, nous vous recommandons de l'installer avec Chocolatey (Homebrew pour Windows et Mac). Les futures mises à jour seront beaucoup plus faciles.

Remarques sur la création d'un environnement avec Chocolatey \ -Qiita

Après avoir installé Chocolatey, exécutez la commande suivante et c'est OK.

install.ps1


cinst nodejs.install -y
cinst python -y

Présentation de atcoder-cli et des outils de juge en ligne

Reportez-vous au tutoriel suivant,

Compléter.

atcoder \ -cli tutorial \ | I Rogu

Vous devez vous connecter à AtCoder avec atcoder-cli et en ligne-juge-tools.

Réglage

Modifions les paramètres pour rendre atcoder-cli plus facile à utiliser. Il n'y a pas de paramètre dans les outils de juge en ligne.

[Introduction à en ligne \ -judge \ -tools \ (japonais ) # Fonctionnalités inexistantes - documentation en ligne \ -judge \ -tools](https://online-judge-tools.readthedocs.io/en/master/introduction .ja.html # id7)

Paramètres du modèle

Une fois que vous avez configuré un modèle, vous pouvez:

Définissez le fichier modèle en fonction des "Paramètres du modèle" dans le didacticiel.

atcoder \ -cli tutorial \ | I Rogu

J'ai les paramètres suivants.

├ Config/  │ └ python/  │   └ main.py  │   └ template.json  │ └ config.json  │ └ session.json

template.json


{
    "task": {
        "program": [
            "main.py"
        ],
        "submit": "main.py"
    }
}

main.py


#!/usr/bin/env python3

def main():
    N = map(int, open(0).read().split())


main()


#! / usr / bin / env python3 est Shebang.

AtCoder vous permet de choisir entre Python2 et Python3 comme environnement d'exécution Python. Shebang est utilisé pour spécifier explicitement que Python3 est utilisé. Si vous oubliez cela, vous obtiendrez une erreur indiquant que vous ne pouvez pas limiter l'environnement d'exécution à un lors de la soumission.

ʻOpen (0) .read (). Split () `est une lecture de l'entrée de la console.

Changer la configuration

Vous pouvez vérifier les paramètres globaux actuels avec ʻacc config`. La valeur par défaut est la suivante.

config.sh


$ acc config
oj-path: C:/Python38/Scripts/oj.exe
default-contest-dirname-format: {ContestID}
default-task-dirname-format: {tasklabel}
default-test-dirname-format: tests
default-task-choice: inquire
default-template: 

Je vais changer cela.

.sh


$ acc config default-test-dirname-format test

Renommez le répertoire de test pour qu'il corresponde aux outils de juge en ligne. Cela permet aux outils de juge en ligne de reconnaître le répertoire de tests et de tester automatiquement des exemples de cas.

.sh


$ acc config default-task-choice all

Lorsque vous exécutez ʻacc new {Contest Id} , vous définissez la méthode de sélection pour les problèmes qui créent des répertoires. La valeur par défaut, ʻinquire, vous oblige à sélectionner manuellement le problème à chaque fois. Je veux créer tous les répertoires à la fois, donc je le mets à «tous».

.shell


$ acc config default-template python

Spécifiez le modèle que vous souhaitez utiliser par défaut. J'utilise python, mais spécifions le modèle le plus fréquemment utilisé créé dans "Paramètres du modèle".

en conclusion

Ceci termine l'installation de atcoder-cli et online-judger-tools, et vous pouvez l'utiliser comme la vidéo au début. Profitons d'AtCoder confortablement!

Recommended Posts

Automatise la création d'annuaire AtCoder, les tests de cas et la soumission. atcoder-cli et outils de juge en ligne
AtCoder: Python: Automatisez autant que possible les tests d'échantillons.
Automatiser la soumission d'AtCoder (Python)