# クイックスタート

AtCoder Next を使って競技プログラミングを始めるための、最も簡単な環境構築手順です。
このガイドでは、ツールのインストールから、プログラミングに必要なコンパイラ等の自動セットアップまでの流れを説明します。

---

## 1. 環境構築の手順

以下のステップを実行して環境構築を行います。

### 準備: Node.js のインストール
AtCoder Next を実行するには Node.js（バージョン18以上推奨）が必要です。未インストールの場合、以下のいずれかの方法でインストールを行ってください。
- **Windows / macOS**: [Node.js 公式サイト](https://nodejs.org/) から推奨版 (LTS) のインストーラーをダウンロードしてインストールします。
- **macOS (Homebrew 使用時)**: ターミナルで `brew install node` を実行します。
- **Linux (Ubuntu/Debian)**: ターミナルで `sudo apt update && sudo apt install nodejs npm` を実行します。

### ステップ 1: AtCoder Next のインストール
Node.js がインストールされた環境で、ターミナル（またはコマンドプロンプト）を開き、以下のコマンドを実行します。
```bash
npm install -g atcoder-next
```

### ステップ 2: ワークスペースの初期化
作業を行いたい任意のフォルダの中で初期化コマンドを実行します。
```bash
# ワークスペースの初期化
atc init
```
実行すると、初期設定に関する質問が表示されます。通常はそのままエンターキーを押してデフォルト設定で進めて問題ありません。これにより、設定ファイルやコード of テンプレートが作成されます。

### ステップ 3: AtCoder へのログイン
提出機能や問題情報の取得を行うために、ログインコマンドを実行します。
```bash
atc login
```
ブラウザ経由かcookieの手動入力を選べますが、基本的にブラウザで大丈夫です。
自動的にブラウザが起動します。ブラウザ側で AtCoder にログインすると、ターミナル側が自動的にセッション情報をキャプチャしてログインが完了します。

### ステップ 4: ツールチェーンの自動セットアップ
プログラムのビルドや実行に必要なコンパイラなどの環境を自動診断し、インストールします。
```bash
atc tools setup
```
診断が実行され、不足しているコンパイラ（C++ 用の GCC など）やランタイムが検出された場合、自動でインストールが行われます。
これで環境の構築は完了します。

---

## 2. 自動セットアップの欠点と注意点

`atc tools setup` を使用した自動セットアップは手軽ですが、以下の欠点や注意点が存在します。

### システムへの影響と特権の要求
Linux 環境などでは、システム全体のパッケージマネージャを介してツールをインストールするため、実行中に管理者パスワード（`sudo`）の入力を求められます。システムに変更が加わるため、共用 PC などでは注意が必要です。

### 既存のインストール環境との競合
すでにローカルに独自にコンパイラや Python などの実行環境をインストールしている場合、この自動セットアップによって別のバージョンが並行してインストールされることがあります。
これにより、環境変数（PATH）の優先順位が崩れ、他の開発プロジェクトに影響を及ぼしたり、意図しないコンパイラが呼び出されたりする原因になる場合があります。

### ネットワーク通信量と処理時間
複数のツールチェーンを一括でダウンロード・構築するため、実行時に大容量の通信が発生します。また、コンパイラのビルドやインストール処理には数分以上の時間がかかる場合があります。

### パッケージマネージャ未導入環境での制限
本機能は OS ごとに定義されたパッケージマネージャ（macOS の Homebrew、Windows の winget や scoop など）を利用します。これらがインストールされていない環境では、インストールの自動実行が失敗するため、手動でパッケージマネージャ自体を導入するか、コンパイラを個別でインストールする必要があります。
