競プロのための環境構築

競プロを始めるために必要な環境を整えます

Homeブログ一覧競プロのための環境構築

競プロのための環境構築

AtCoderの登録と,C++で競プロを始めるため環境構築を行います.
具体的には

  • コードを書くためのソフト VSCode の入手
  • C++ をコンパイルするための build-essential のインストール
  • AtCoder に登録
    ※今回の環境構築をしないとAtCoderを利用できないということでは無いです

Visual Studio Code

Visual Studio Codeのインストール

下記のリンクからVisual Studio Code(以下VSCodeとする)を入手してください.

VSCodeのインストール

拡張機能のインストール

VSCodeを開いたら左のバーにある拡張機能のアイコンをクリックしてください
検索機能を利用し「C/C++ Extension Pack」と「WSL」をインストールしてください.
日本語化のための「Japanese Language Pack for Visual Studio Code」もお好みでインストールしてください.
拡張機能のインストール

build-essentialのインストール

macOSの方へ

Homebrewのインストール

Homebrewをインストールします.

/bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)"

Shellの再読み込み

インストール後,以下のコマンドでShellを再読み込みします.

exec $SHELL -l

GCCのインストール

Homebrewを使用してGCCをインストールします.

brew install gcc
gcc --version
g++ --version  # clangと出力された場合は、シンボリックリンクの設定に進む

シンボリックリンクの設定

GCCとG++のシンボリックリンクを設定します

もし①でgcc-10が出力されたら /usr/local/bin/gcc-10 というように適宜変えてください

ls /usr/local/bin | grep gcc  # 正しいバージョンを確認
ln -s /usr/local/bin/gcc-10 /usr/local/bin/gcc  # 適切なバージョンをリンク

ls /usr/local/bin | grep g++  # 同様に確認
ln -s /usr/local/bin/g++-10 /usr/local/bin/g++  # 適切なバージョンをリンク

GCCとG++のバージョンを確認します

gcc --version
g++ --version

VSCodeで書いたコードを皆さんのPCで実行するために必要なコンパイラを入手します. 以下のコマンドをターミナルで実行してください.

sudo apt install build-essential

先日設定したUbuntuのパスワードが必要になります.
build-essentialのインストール

コードを実行してみよう

競プロ用のディレクトリを作成

/home/ユーザー名/competition/test.cpp
上記のように,ディレクトリ(フォルダ)とファイルを作成してください. ディレクトリを開く1 ディレクトリを開く1 ディレクトリを作成

Hello, world

ファイルが作成できたら以下のコードをコピぺしてください.

#include <bits/stdc++.h>
using namespace std;

int main() {
  cout << "Hello, world!" << endl;
}

次に上記のコードを実行するためにターミナルで以下のコマンドを入力してください.

cd /home/ユーザー名/competition
g++ -o test test.cpp
./test

失敗した場合は下記のコマンドを実行してください.

chmod +x ./test

AtCoderの登録

上記のリンクからAtCoderに登録してください.そこまで説明は必要ないかと思いますが,

  • ユーザー名の変更が一度しかできないこと
  • アカウントの複数作成は禁止されていること
    に注意してください.

以上で競プロを始めるための環境は整いました.

APG4bの紹介

せっかく環境が整ったので,皆さんが競プロを自習する際に参考になるサイトを紹介します.
まずは1章を進めていただければ,講習会の予習・復習にもなると思います.