Creating Problems
This guide walks you through creating programming problems in omegaUp.
Quick Start
The easiest way to create a problem is using the Problem Creator (CDP):
- Visit omegaup.com/problem/creator
- Fill in problem details
- Add test cases
- Configure limits and languages
- Upload and publish
Video Tutorial
Watch this tutorial for a visual walkthrough.
Problem Components
Required Elements
- Title: Problem name
- Alias: Short identifier (used in URLs)
- Statement: Problem description (Markdown supported)
- Test Cases: Input/output files
- Validator: How outputs are compared
- Limits: Time and memory constraints
Optional Elements
- Source: Problem origin (e.g., "OMI 2020")
- Tags: Categorization tags
- Validator Code: Custom validator program
- Checker: Custom output checker
Validator Types
| Type | Description |
|---|---|
literal |
Exact match |
token |
Token-by-token comparison |
token-caseless |
Case-insensitive token comparison |
token-numeric |
Numeric comparison with tolerance |
custom |
User-defined validator |
Problem Limits
Configure appropriate limits:
- Time Limit: Execution time per test case (milliseconds)
- Memory Limit: Memory usage limit (KB)
- Output Limit: Maximum output size (bytes)
Supported Languages
omegaUp supports many programming languages:
- C, C++ (various standards)
- Java, Kotlin
- Python ⅔
- Ruby, Perl
- C#, Pascal
- Karel (Karel.js)
- And more...
Advanced: Manual ZIP Creation
For advanced use cases, see Problem Format for manual ZIP file creation.
Related Documentation
- Problem Format - ZIP file structure
- Problems API - API endpoints
- Manual ZIP Guide - Detailed ZIP format