shaping-problems

Shapes competitive programming problem ideas into scored subtask ladders and problem.json metadata.

1|Updated Sep 3, 2026
One-click install
npx skills add https://github.com/nudetiger/competitive-programming-problem-preparer --skill shaping-problems-nudetiger
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: shaping-problems
Source: https://github.com/nudetiger/competitive-programming-problem-preparer/tree/main/skills/shaping-problems
Command: npx skills add https://github.com/nudetiger/competitive-programming-problem-preparer --skill shaping-problems-nudetiger

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Turning a raw competitive programming problem idea into concrete, defensible numbers — difficulty, constraints, scoring format, and subtask weights — is error-prone and often skipped, leading to problems where the naive solution passes or subtasks reward nothing distinct. ## Core Features & Use Cases - Originality Check: Strips flavor from the idea and checks whether the core operation is already a known problem on Codeforces, AtCoder, or OI archives. - Constraint Separation Analysis: Computes the N where the intended solution passes the time limit but the naive solution fails, using a ~10^8 operations/second budget across every size parameter. - OI vs ICPC Scoring: Proposes a subtask ladder where each rung pays for a distinct algorithmic insight, with point weights summing exactly to the configured total. - problem.json Generation: Writes the schema-1 problem.json file (format, limits, constraints, subtasks, checker kind) that downstream skills consume for test generation and Polygon upload. - Use Case: You have an idea for a graph problem and need to decide whether it works as an OI problem with three subtasks or a single ICPC group, and what N separates the O(n log n) intended solution from the O(n^2) brute force. ## Quick Start Ask the assistant to shape your problem idea into constraints, a scoring format, and a subtask ladder written to problem.json.

Frequently Asked Questions about shaping-problems

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose constraints for a competitive programming problem?

Pick N so the intended solution fits the time limit while the naive solution does not, using roughly 10^8 operations per second as the budget. Check every size parameter (n, q, alphabet, value range), not just n, and verify both complexities land on opposite sides of the limit.

How do I design subtasks for an OI problem?

Each subtask should reward a distinct algorithmic insight, not just a smaller N that the same algorithm still clears. Write down which algorithm first becomes correct at each proposed bound; if two rungs name the same algorithm, merge them or adjust the bound.

What is the difference between OI and ICPC problem format?

ICPC uses a single 100-point group with no subtask table in the statement, while OI uses partial scoring across multiple subtasks. The choice is recorded as the format field in problem.json, which the Polygon upload step reads to configure points and groups.

How should subtask points be distributed in an OI problem?

Points must sum exactly to the configured total (default 100). Give the first non-trivial insight roughly 20-40 points, bias toward the insight you want to reward, and avoid scoring rungs that only catch overflow or edge cases like n = 1.

How do I check if my problem idea is already known?

Strip the story flavor, name the core operation in one sentence, and search your knowledge of Codeforces, AtCoder, and OI archives. If it matches a known problem, say so and let the user proceed, retarget constraints, or drop the idea.