素材の味

丁寧に暮らしています

VS Codeを使った精進環境

VS CodeAtCoderの過去問やるときの環境について書いておく

つかってるのはこれ

github.com

marketplace.visualstudio.com

問題のディレクトリ生成とサンプルのDL

atcoder ディレクトリを作って、その中に gen.shmain.cpp を置いてる

.
├── gen.sh
└── main.cpp

gen.sh の中身はこうなってて ./gen.sh 100 みたいにすると ABC100 の aからcまでの問題のsample input/outputをとってきてくれる

#!/bin/bash

mkdir $1
cd $1
list="a b c" # とりあえずa,b,cだけ
for x in $list; do
    mkdir $x
    cd $x
    cp ../../main.cpp ./main.cpp
    oj download https://atcoder.jp/contests/abc$1/tasks/abc$1_$x
    cd ../
done

実際に ./gen.sh 100 を実行するとこんな感じになる

.
├── 100
│   ├── a
│   │   ├── main.cpp
│   │   └── test
│   ├── b
│   │   ├── main.cpp
│   │   └── test
│   └── c
│       ├── main.cpp
│       └── test
├── gen.sh
└── main.cpp

a 問題を解くなら a/main.cppVS Codeで開く(連続で解くので atcoder ディレクトリを開いたほうが良い)

code-runnerを使って実行する

VS Codeワークスペースで以下のような設定をする

{
    "code-runner.customCommand": "g++  ./main.cpp && oj test",
    "code-runner.clearPreviousOutput": true, // これは好み
    "code-runner.fileDirectoryAsCwd": true,
    "code-runner.runInTerminal": true // これも好み
}

あとは VS CodeRun Custom Command を実行するとコンパイルoj test が実行されてターミナルに実行結果が表示される (ショートカットを設定すると便利)

code-runnerで実行した結果
code-runnerで実行した結果

あとはどんどん解いていくだけ