> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hnuicpc.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started

> Everything you need to begin your competitive programming journey.

## What is competitive programming?

Competitive programming (CP) is a mind sport where participants solve well-defined algorithmic problems within time and resource constraints. It's the foundation of the **ICPC (International Collegiate Programming Contest)** — the oldest and most prestigious programming competition in the world.

## Why competitive programming?

<Columns cols={2}>
  <Card title="Sharpen your thinking" icon="brain">
    Develop strong problem-solving and analytical skills that translate to real-world software engineering.
  </Card>

  <Card title="Ace technical interviews" icon="briefcase">
    Most tech companies (Google, Meta, Amazon) base their interviews on CP-style problems.
  </Card>

  <Card title="Compete globally" icon="globe">
    Represent HNU at ICPC regionals and potentially the World Finals.
  </Card>

  <Card title="Build community" icon="users">
    Learn alongside motivated peers who share your passion for problem solving.
  </Card>
</Columns>

## Set up your environment

### Choose a language

For competitive programming, we recommend:

| Language   | Pros                                           | Recommendation       |
| ---------- | ---------------------------------------------- | -------------------- |
| **C++**    | Fast execution, STL library, most CP resources | ⭐ Highly recommended |
| **Python** | Easy syntax, great for math problems           | Good for beginners   |
| **Java**   | BigInteger support, verbose but reliable       | Acceptable           |

<Note>
  Most ICPC competitors use **C++** because of its speed and the powerful Standard Template Library (STL). We recommend starting with C++ if you're serious about competing.
</Note>

### Essential tools

1. **Code editor**: [VS Code](https://code.visualstudio.com/) with the C/C++ extension, or [CLion](https://www.jetbrains.com/clion/)
2. **Online judge account**: Create accounts on [Codeforces](https://codeforces.com), [AtCoder](https://atcoder.jp), and [LeetCode](https://leetcode.com)
3. **Compiler**: Install `g++` (via MinGW on Windows, or `build-essential` on Linux)

### Your first program

```cpp theme={null}
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    cout << "Hello, competitive programming! n = " << n << endl;

    return 0;
}
```

<Tip>
  The `ios_base::sync_with_stdio(false)` and `cin.tie(NULL)` lines speed up input/output — essential for competitive programming.
</Tip>

## What's next?

<Columns cols={2}>
  <Card title="How to practice" icon="dumbbell" href="/how-to-practice">
    Learn effective practice strategies to improve consistently.
  </Card>

  <Card title="Start solving" icon="play" href="/level-0/sheets/sheet-1">
    Begin with our curated beginner problem sheet.
  </Card>
</Columns>
