A reproducible archive of 2,283 unique Codeforces problems, selected as the first accepted submission for each problem.
This repository documents my competitive-programming journey from 2022 through 2025. It is generated from authoritative Codeforces submission metadata, retains source code exactly as submitted, and reconstructs one Git commit per unique solved problem using the original timestamp.
| Metric | Value |
|---|---|
| Unique problems solved | 2,283 |
| First solve | 326175B · 27 Jan 2022 |
| Last solve | 2039A · 31 Dec 2025 |
| Highest-rated solve | 2000 · 380C — Sereja and Brackets |
| Active solving days | 1,008 |
| Languages used | 8 |
Rating distribution
| Rating | Solutions |
|---|---|
| 800 | 656 |
| 900 | 221 |
| 1000 | 171 |
| 1100 | 144 |
| 1200 | 321 |
| 1300 | 247 |
| 1400 | 183 |
| 1500 | 80 |
| 1600 | 51 |
| 1700 | 9 |
| 1800 | 3 |
| 1900 | 5 |
| 2000 | 2 |
| Unrated | 190 |
Language distribution
| Language | Solutions |
|---|---|
| C++ | 2004 |
| Java | 259 |
| C | 11 |
| PHP | 5 |
| JavaScript | 1 |
| Python | 1 |
| Mysterious | 1 |
| Pike | 1 |
.
├── codeforces/ # Exact accepted sources under <rating>/
├── data/ # Machine-readable archive manifest
├── docs/ # Architecture and operating documentation
├── logs/ # Runtime logs (ignored except for .gitkeep)
├── scripts/ # Stable command wrappers
├── src/cp_archive/ # Typed archive/import/history implementation
└── tests/ # Unit and integration-oriented tests
Each source filename follows <contest><index>_<sanitized_problem_name>.<extension>. The manifest links every file to its submission, timestamp, language, rating, and SHA-256 digest.
The importer pages through the Codeforces API with retry and rate limiting, resolves historical handles, filters the configured date range, selects the chronologically first accepted submission per stable problem key, infers the correct extension, and resumes from a local cache after interruption. README statistics and the JSON manifest are regenerated deterministically.
Historical commits are constructed with Git plumbing in a temporary index. Every unique problem produces one commit named Solve CF <id><index> - <name>; both author and committer dates use that solution's original accepted timestamp.
See Usage, Architecture, and Data integrity for operational details.
Automation code and repository documentation are available under the MIT License. Individual problem statements belong to their respective platforms. Submitted solution source is retained here as the author's work.