sachaos.md
----------

# AC Deck (AtCoder の CLI ツール) を AtCoder のライブラリに対応した

このエントリーをはてなブックマークに追加

AtCoder のライブラリが発表されました。 私が作っている AtCoder のツールである AC Deck もこれに対応しました。 ローカルで簡単に AtCoder のライブラリを使ったテストと AtCoder への提出ができます。

AC Deck ではローカル環境でのテストを Docker コンテナ上で実行しています。 Docker コンテナに AtCoder のライブラリを含むようにしたので、 ライブラリを自分でダウンロードして配置する必要はありません。

## 利用方法

基本的な利用方法はこちらを参照してください。

https://qiita.com/sachaos/items/37bb4a32ff49ab4a3ac0

## インストール

Mac であれば Homebrew でインストールできます。

```shell
$ brew install sachaos/tap/ac-deck
```

AC Deck の v0.4.1 で対応しています。 インストールされているバージョンを確認してください。

```shell
$ acd --version
acd version 0.4.1
```

## Docker コンテナイメージのダウンロード

```shell
$ acd install c++_ac
Image not found: ghcr.io/sachaos/atcoder-gcc:v1.0.0
Pulling image: ghcr.io/sachaos/atcoder-gcc:v1.0.0
(省略)
Preparation completed
```

## ライブラリ練習コンテストを取得

```shell
$ acd prepare practice2 --language c++_ac
Using template of C++ (GCC 9.2.1 with AC Library v1.0)
Generating testdata & source on practice2/practice2_a
Generating testdata & source on practice2/practice2_b
Generating testdata & source on practice2/practice2_c
(省略)
```

## 問題A をとく

```shell
$ EDITOR=vim acd practice2/practice2_a edit
($EDITOR 環境変数で指定されているエディタが立ち上がります)
```

ネタバレ注意ですが、 例えばこんな感じに atcoder ライブラリを使ったコードがかけます。

https://atcoder.jp/contests/practice2/submissions/16595214

## ローカルでテストする

```shell
$ acd practice2/practice2_a test
Running test on Container mode

Case 1: AC
Time: 92.371797ms
```

## 提出する

```shell
❯ acd practice2/practice2_a submit
Running test on Container mode

Case 1: AC
Time: 83.911685ms

Submit success!

Judging: AC DONE

+--------------------------|------------------------|--------------------------------|-------|-------------|--------|--------------|---------+
|     SUBMISSION DATE      |        PROBLEM         |            LANGUAGE            | SCORE | CODE LENGTH | RESULT | ELAPSED TIME | MEMORY  |
+--------------------------|------------------------|--------------------------------|-------|-------------|--------|--------------|---------+
| 2020-09-09 19:23:12+0900 | A - Disjoint Set Union | C++ (GCC 9.2.1 with AC Library |   100 | 341 Byte    | AC     | 248 ms       | 4004 KB |
|                          |                        | v1.0)                          |       |             |        |              |         |
+--------------------------|------------------------|--------------------------------|-------|-------------|--------|--------------|---------+
```

## まとめ

AC Deck をバージョンアップして AtCoder のライブラリに対応するようにしました。

9/20 と 9/26 にはライブラリの公開を記念したコンテストが開催されるとのことで、楽しみですね。

それまでに使いこなせるようになりたいものです。

このエントリーをはてなブックマークに追加