想定条件
atcoder-cliおよびonline-judge-toolsをインストール済み
未インストールの方はこちらを参考にしてください。
私の環境
Ubuntu18.04
私のAtCoder用ディレクトリの概要
home
┣ AtCoder
┣ ABC160
┣ a.cpp
┣ b.cpp
┣ c.cpp
︙
┣ ABC161
┣ ABC162
︙
┣ Contest //コンテスト用デフォルトディレクトリ
上図のようになっています。詳しく見たい方はこちらからどうぞ。
はじめに
本ページで紹介させていただく関数たちは、
私が使いやすいと感じる、私の私による私のためだけの関数たちです。
また、私がコンテストにC++でしか参加していない影響で、C++にしか対応していません。
不便に感じるところはお好きに改造して各自幸せになってください。
どこかのだれかの参考になれば幸い。
そういったものです。
やったこと
bashrcで関数をいろいろ作って定番のコマンドを一度に実行できるようにしました。
本記事では、コードやコマンドの意味、役割などの説明は省かせていただきます。
以下、作った関数を4つ紹介します。
1. コンテスト用ディレクトリを作り、そのディレクトリをAtomで開く関数
function accdir (){cd ~/AtCoder/;cp-a Contest/ $1;
atom $1;cd$1;}alias acd=accdir
使用方法
以下の画像のように、
acd ABC178
といった感じで打ち込むことで、
”AtCoder”ディレクトリの中に”ABC178”というディレクトリを新たに作り、
そのディレクトリをAtomで開き、そして端末では”ABC178”ディレクトリに移動しています。
2. コードテスト、コード提出用ディレクトリを作る関数
atcoder-cliの機能でコードテスト&コード提出用ディレクトリを作ります。
なぜわざわざディレクトリ名を”s”に変えているのか。その理由は次とそのまた次の関数を見ればわかります。
function accnew (){
acc new $1;mv$1 s;}alias acn=accnew
使用方法
左下の画像のように一つ前のacdコマンドで作ったディレクトリ内で
acn abc178
と打ち込むことで、ABC179のダウンロードする問題を指定するように促されます。
そこで選択し、Enterを押すと、
右下の画像のようにダウンロードされディレクトリが生成されます。
このコマンドは、atcoder-cliの特性上、コンテストが開始してからしか使えないので、ご注意ください。
(すでに終了しているコンテストでは問題なく使えます。)
3. コードを提出する関数
function accsubmit (){path=$PWD;cpp='.cpp';name=$1${cpp};cp${name} s/$1/;cd s/$1;
acc submit ${name};cd;cd${path};}alias acs=accsubmit
使用方法
下の画像のように、acdコマンドで作ったディレクトリ内で
acs a
などと打ち込むことで、問題提出ができます。
第一引数に、a
を入れるとa問題を提出。b
を入れるとb問題の提出ができます。
こんな感じ。
4. コードをテストする関数
function acctest (){path=$PWD;cpp='.cpp';name=$1${cpp};cp${name} s/$1/;cd s/$1;
g++ ${name};
oj t -d ./tests/;cd;cd${path};}alias act=acctest
使用方法
下の画像のように、acdコマンドで作ったディレクトリ内で
act a
などと打ち込むことで、テストケースの検証ができます。
第一引数に、a
を入れるとa問題を、b
を入れるとb問題のテストができます。
さいごに
こちらで随時更新したものをあげているので、最新バージョンを見たい方はどうぞ。
皆さまも快適なbashライフをお過ごしください〜!
では。