lihaoze123/my-claude-code

acm-icpc-problem-setting

Use when preparing algorithm competition problems for ACM-ICPC, CCPC, Codeforces, or similar contests, including problem creation, statement writing, test data generation, and contest organization

First seen Mar 7, 2026

Installation

$ npx skills add lihaoze123/my-claude-code --skill acm-icpc-problem-setting

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from lihaoze123/my-claude-code.

npx skills add lihaoze123/my-claude-code

Browse all from lihaoze123/my-claude-code

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 3
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,108 B
  • docs SUMMARY.md 228 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 15 installs

SKILL.md

ACM-ICPC Problem Setting Best Practices

Overview

Comprehensive guidance for creating high-quality algorithm competition problems, covering the full workflow from idea conception to publication.

When to Use

  • Creating problems for ACM-ICPC, CCPC, Codeforces, or similar contests
  • Writing problem statements with LaTeX
  • Generating test data using testlib
  • Setting up validators and checkers
  • Organizing algorithm competitions

Quick Reference

Topic Detailed Rules
Problem conception [rules/problem-conception.md](rules/problem-conception.md)
Statement writing [rules/statement-writing.md](rules/statement-writing.md)
Test data generation [rules/test-data-generation.md](rules/test-data-generation.md)
Special Judge [rules/spj-checker.md](rules/spj-checker.md)
Time/memory limits [rules/limits-subtasks.md](rules/limits-subtasks.md)
Contest organization [rules/contest-organization.md](rules/contest-organization.md)

Core Principles

Problem Quality

  • Original idea - No duplicates or trivial enhancements
  • Clear statement - Every concept defined, no ambiguity
  • Complete constraints - All variable ranges specified
  • Strong samples - Catch wrong interpretations

Data Quality

  • Edge cases - Min/max values, boundary conditions
  • Diverse constructions - Random + handcrafted
  • Format compliance - Linux line endings, no trailing whitespace

Platform-Specific

  • Polygon - Integrated workflow for teams
  • Codeforces - Requires 5-25 rated contests
  • Luogu - Requires competition awards

Red Flags - STOP

Anti-pattern Fix
Undefined terms in statement Add definitions in problem description
Inconsistent terminology Use same word for same concept
Weak samples Include edge cases and wrong interpretations
Incomplete data ranges Specify ALL variables' ranges
Wrong time limit Test std × 2 minimum
Poor subtask design Use clear structure, avoid percentages

Essential Code

testlib Generator

#include "testlib.h"
int main(int argc, char* argv[]) {
    registerGen(argc, argv, 1);
    int n = opt<int>("n");
    vector<int> a(n);
    for (int i = 0; i < n; i++)
        a[i] = rnd.next(1, 1000000);
    println(n);
    println(a);
}

Basic Checker

#include "testlib.h"
int main(int argc, char* argv[]) {
    registerTestlibCmd(argc, argv);
    int jans = ans.readInt();
    int pans = ouf.readInt();
    if (pans == jans) quitf(_ok, "%d", pans);
    else quitf(_wa, "expected %d, found %d", jans, pans);
}

References