Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

bachrcでなんやかんやしてAtCoderのコンテストの提出等にかかるコストを最小限にした話

$
0
0

想定条件

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で開く関数

.bashrc
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”に変えているのか。その理由は次とそのまた次の関数を見ればわかります。

.bashrc
function accnew (){
    acc new $1;mv$1 s;}alias acn=accnew

使用方法

左下の画像のように一つ前のacdコマンドで作ったディレクトリ内で

acn abc178

と打ち込むことで、ABC179のダウンロードする問題を指定するように促されます。
そこで選択し、Enterを押すと、
右下の画像のようにダウンロードされディレクトリが生成されます。

このコマンドは、atcoder-cliの特性上、コンテストが開始してからしか使えないので、ご注意ください。
(すでに終了しているコンテストでは問題なく使えます。)

3. コードを提出する関数

.bashrc
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. コードをテストする関数

.bashrc
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ライフをお過ごしください〜!

では。


Viewing all articles
Browse latest Browse all 2722

Trending Articles