xcpc-jiangly-style

star 13

Use when writing C++ competitive programming solutions for Codeforces, ICPC, or similar contests. Apply when creating XCPC solutions to ensure code follows jiangly's proven style patterns.

lihaoze123 By lihaoze123 schedule Updated 1/24/2026

name: xcpc-jiangly-style description: Use when writing C++ competitive programming solutions for Codeforces, ICPC, or similar contests. Apply when creating XCPC solutions to ensure code follows jiangly's proven style patterns. license: MIT metadata: author: chumeng version: "2.0.0" source: jiangly Codeforces submissions

XCPC: jiangly C++ Style

Overview

Proven C++ coding style from jiangly's Codeforces submissions. Focuses on safety, maintainability, and modern C++ features for competitive programming.

Core principle: Zero global pollution, zero global arrays, explicit types, modern C++.

When to Use

  • Writing C++ solutions for Codeforces, ICPC, AtCoder, etc.
  • Creating competitive programming templates
  • Reviewing contest solutions
  • Teaching competitive programming best practices

Don't use for:

  • Production C++ code (different requirements)
  • Non-competitive programming projects

Quick Reference

Category Rule File
Namespace Never using namespace std; no-global-namespace
Arrays Zero global arrays zero-global-arrays
Types Use using i64 = long long; explicit-types
Indexing Always 0-indexed zero-indexed
I/O Disable sync, use \n fast-io
Naming snake_case for vars, PascalCase for structs naming
Formatting 4-space indent, K&R braces, no line compression formatting
Recursion Lambda + self pattern recursion
Structs Constructor patterns, const correctness struct-patterns
Operators Overload patterns for custom types operator-overloading
Helpers chmax, ceilDiv, gcd, power, etc. helper-functions
DP Use vector, never memset dp-patterns
Modern C++ Prefer structured binding structured-binding

Code Template

#include <bits/stdc++.h>

using i64 = long long;

void solve() {
    int n;
    std::cin >> n;

    std::vector<int> a(n);
    for (int i = 0; i < n; i++) {
        std::cin >> a[i];
    }

    std::cout << ans << "\n";
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int t;
    std::cin >> t;

    while (t--) {
        solve();
    }

    return 0;
}

Red Flags - STOP

Anti-pattern Correct approach
using namespace std; Use std:: prefix
int a[100005]; global std::vector<int> a(n); in solve()
#define int long long using i64 = long long;
for (int i = 1; i <= n; i++) for (int i = 0; i < n; i++)
void dfs(int u, int p) global Lambda with self capture
std::endl Use "\n"
if (x) do_something(); Always use braces

Full Documentation

For complete details on all rules: AGENTS.md

Install via CLI
npx skills add https://github.com/lihaoze123/jiangly-s-code-style-for-xcpc --skill xcpc-jiangly-style
Repository Details
star Stars 13
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator