solve
Solve competitive programming and LeetCode-style problems with educational explanations. Use when asked to "solve this problem", "help with this leetcode", "competitive programming solution", "solve this algorithm problem", "coding challenge solution", "how to solve this coding problem", or any algorithmic problem-solving request.
What this skill does
# Competitive Programming Problem Solver
Solve competitive programming and LeetCode-style problems with clear educational explanations, step-by-step walkthroughs, and verified Python solutions.
**CRITICAL: Complete ALL 4 phases. Do not stop after classification or skip the agent.**
## Phase 1: Parse Input
**Goal:** Extract and understand the problem statement.
If `$ARGUMENTS` is provided, parse the problem statement from it. Extract:
- Problem description and objective
- Input/output format
- Constraints (N, M, value ranges)
- Example test cases with expected outputs
- Any special conditions (modular arithmetic, multiple test cases, interactive)
If `$ARGUMENTS` is empty or unclear, use `AskUserQuestion` to request the problem:
```
AskUserQuestion:
question: "Please provide the problem statement. You can paste the full text, describe it in your own words, or provide a link."
options:
- label: "Paste problem text"
description: "Paste the full problem statement including constraints and examples"
- label: "Describe the problem"
description: "Describe what the problem asks in your own words"
```
If the problem statement is ambiguous or missing key information (constraints, examples), ask for clarification before proceeding.
## Phase 2: Classify Problem
**Goal:** Determine the algorithmic category, technique, and difficulty.
Analyze the problem to determine:
### 2.1 Primary Category
Match to one of:
- **Dynamic Programming** — optimization over subsequences, counting ways, overlapping subproblems
- **Graph Algorithms** — connectivity, shortest paths, traversal, network problems
- **Search and Optimization** — binary search, two pointers, greedy, interval problems
- **Data Structures** — specialized structures needed (heap, trie, segment tree)
- **Math and Combinatorics** — number theory, counting, modular arithmetic, game theory
- **String Algorithms** — pattern matching, palindromes, hashing
### 2.2 Sub-pattern
Identify the specific technique within the category (e.g., "0/1 Knapsack", "Dijkstra", "Sliding Window").
### 2.3 Difficulty Estimate
- **Easy** — single technique, straightforward application
- **Medium** — requires insight or combining 2 techniques
- **Hard** — non-obvious technique, complex implementation, or 3+ techniques
- **Competition** — advanced techniques, mathematical reasoning, or creative construction
### 2.4 Constraint Analysis
Map input size to required time complexity:
| Input Size | Viable Complexity | Typical Approach |
|-----------|------------------|-----------------|
| N ≤ 15 | O(2^N), O(N!) | Bitmask DP, backtracking |
| N ≤ 20 | O(2^N × N) | Bitmask DP |
| N ≤ 100 | O(N^3) | Floyd-Warshall, interval DP |
| N ≤ 500 | O(N^3) | Matrix DP, dense graph algorithms |
| N ≤ 3,000 | O(N^2) | Standard DP (LCS, edit distance) |
| N ≤ 10,000 | O(N^2) or O(N√N) | Careful O(N^2), sqrt decomposition |
| N ≤ 100,000 | O(N log N) | Sorting, binary search, segment tree |
| N ≤ 1,000,000 | O(N) or O(N log N) | Linear scan, prefix sums, two pointers |
| N ≤ 10^8 | O(N) | Simple linear pass |
| N ≤ 10^9+ | O(log N) or O(√N) | Binary search, math formula |
### 2.5 Secondary Categories
Note if the problem combines techniques (e.g., "Binary Search + DP", "Graph + Greedy").
Present the classification summary to the user before proceeding.
## Phase 3: Load References and Spawn Agent
**Goal:** Provide the solver agent with domain-specific algorithmic knowledge.
### 3.1 Load Reference Skills
Based on the primary category, load the corresponding reference skill:
- **Dynamic Programming** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/dp-patterns/SKILL.md`
- **Graph Algorithms** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/graph-algorithms/SKILL.md`
- **Search and Optimization** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/search-and-optimization/SKILL.md`
- **Data Structures** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/data-structures/SKILL.md`
- **Math and Combinatorics** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/math-and-combinatorics/SKILL.md`
- **String Algorithms** → `Read ${CLAUDE_PLUGIN_ROOT}/skills/string-algorithms/SKILL.md`
If a secondary category was identified, load that reference skill as well (maximum 2 reference skills).
### 3.2 Spawn Problem Solver Agent
Use the Task tool to spawn the problem-solver agent:
```
Task:
subagent_type: "agent-alchemy-cs-tools:problem-solver"
prompt: |
## Problem Statement
[full problem text with all constraints, I/O format, and examples]
## Classification
- **Category:** [primary category]
- **Sub-pattern:** [specific technique]
- **Difficulty:** [level]
- **Complexity Target:** [required time complexity based on constraints]
- **Secondary Category:** [if applicable]
## Reference Material
[paste the content from the loaded reference skill(s)]
Produce a complete solution following your structured output format.
```
## Phase 4: Present Solution
**Goal:** Format and present the solution with follow-up options.
Take the agent's structured output and present it to the user. The output includes:
- Classification summary
- Key insight (the "aha" moment)
- Step-by-step approach
- Verified Python solution code
- Time and space complexity analysis with derivation
- Walkthrough tracing through an example
- Edge cases
- Common mistakes
- Alternative approaches
After presenting the solution, offer follow-up actions:
```
AskUserQuestion:
question: "What would you like to do next?"
options:
- label: "Verify with test cases"
description: "Run the solution through comprehensive test cases including edge cases and stress tests"
- label: "Explain in more detail"
description: "Get a deeper explanation of the approach, technique, or a specific part of the solution"
- label: "Show alternative approach"
description: "See a different way to solve this problem with trade-off analysis"
- label: "Done"
description: "Solution is satisfactory, no further action needed"
```
If the user selects "Verify with test cases", suggest they use `/verify` with the problem and solution.
If "Explain in more detail", provide additional explanation of the requested aspect.
If "Show alternative approach", re-spawn the agent with instructions to use a different technique.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.