# sadatislam9696/competitive-programming architecture

> Architecture diagram of the GitHub repository sadatislam9696/competitive-programming, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sadatislam9696/competitive-programming
- Repository: https://github.com/sadatislam9696/competitive-programming

## Overview

This repository is a collection of standalone competitive-programming solutions, demonstrations, and reusable algorithm snippets—not one integrated application. The usual workflow is to provide input to an individual program and read its answer; there is no shared runtime coordinating the files. The graph samples representative problem areas and algorithm techniques visible in the tree. Source excerpts are limited, and the README is empty, so connections between separate programs are not inferred.

Main entry points: [`CSES`](https://github.com/sadatislam9696/competitive-programming/tree/main/CSES) (CSES problems), [`Codechef`](https://github.com/sadatislam9696/competitive-programming/tree/main/Codechef) (CodeChef problems), [`Graph - problem`](https://github.com/sadatislam9696/competitive-programming/tree/main/Graph%20-%20problem) (Graph problems), [`Number Theory/2154C - C1. No Cost Too Great (Easy Version).cpp`](https://github.com/sadatislam9696/competitive-programming/blob/main/Number%20Theory/2154C%20-%20C1.%20No%20Cost%20Too%20Great%20(Easy%20Version).cpp) (Number theory)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_judge["Judge solutions"]
  node_cses["CSES problems"]
  node_codechef["CodeChef problems"]
  node_graphproblems["Graph problems"]
  node_numbertheory["Number theory"]
  node_picnic["Reachability counts"]
  node_stringdivisors["String periods"]
  node_graphcheck["Route connectivity"]
end

subgraph group_topics["Algorithm studies"]
  node_dynamic["Dynamic programming"]
  node_rodcutting["Rod cutting<br/>[Rod cutting.cpp]"]
  node_shortestpaths["Shortest paths"]
  node_bellman["Bellman-Ford"]
  node_algorithms["Algorithm examples"]
end

subgraph group_snippets["Reusable snippets"]
  node_templates["General template<br/>[ALL template.cpp]"]
  node_hashsnippet["Double hashing<br/>[hasing_double.cpp]"]
  node_segmenttree["Segment trees<br/>[segment_tree.cpp]"]
  node_numbertools["Number tools"]
end

node_contestant(("Contestant"))
node_output(("Program output"))

node_contestant -->|"provides input"| node_cses
node_cses -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_codechef
node_codechef -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_graphproblems
node_graphproblems -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_numbertheory
node_numbertheory -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_picnic
node_picnic -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_stringdivisors
node_stringdivisors -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_rodcutting
node_rodcutting -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_bellman
node_bellman -->|"prints distances"| node_output
node_contestant -->|"provides input"| node_graphcheck
node_graphcheck -->|"prints verdict"| node_output
node_contestant -->|"provides input"| node_dynamic
node_dynamic -->|"prints answer"| node_output
node_contestant -->|"provides input"| node_shortestpaths
node_shortestpaths -->|"prints distances"| node_output
node_contestant -->|"provides input"| node_algorithms
node_algorithms -->|"prints result"| node_output

click node_cses "https://github.com/sadatislam9696/competitive-programming/tree/main/CSES"
click node_codechef "https://github.com/sadatislam9696/competitive-programming/tree/main/Codechef"
click node_graphproblems "https://github.com/sadatislam9696/competitive-programming/tree/main/Graph%20-%20problem"
click node_numbertheory "https://github.com/sadatislam9696/competitive-programming/blob/main/Number%20Theory/2154C%20-%20C1.%20No%20Cost%20Too%20Great%20(Easy%20Version).cpp"
click node_picnic "https://github.com/sadatislam9696/competitive-programming/blob/main/Litoj/Best%20Picnic%20Ever.cpp"
click node_stringdivisors "https://github.com/sadatislam9696/competitive-programming/blob/main/String/Number_of_divisor_of_string.cpp"
click node_dynamic "https://github.com/sadatislam9696/competitive-programming/tree/main/Dp%20-%20problem"
click node_rodcutting "https://github.com/sadatislam9696/competitive-programming/blob/main/Dp%20-%20problem/Rod%20cutting.cpp"
click node_shortestpaths "https://github.com/sadatislam9696/competitive-programming/tree/main/Topic%20Base%20Code"
click node_bellman "https://github.com/sadatislam9696/competitive-programming/blob/main/Topic%20Base%20Code/Bellman%20Ford%20Algorithm.cpp"
click node_graphcheck "https://github.com/sadatislam9696/competitive-programming/blob/main/CSES/1682%20-%20Flight%20Routes%20Check.cpp"
click node_templates "https://github.com/sadatislam9696/competitive-programming/blob/main/ALL%20template.cpp"
click node_hashsnippet "https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/hasing_double.cpp"
click node_segmenttree "https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/segment_tree.cpp"
click node_numbertools "https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/prime_factorization_using_spf.cpp"
click node_algorithms "https://github.com/sadatislam9696/competitive-programming/tree/main/GeeksforGeeks"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cses,node_codechef,node_graphproblems,node_numbertheory,node_picnic,node_stringdivisors,node_graphcheck toneBlue
class node_dynamic,node_rodcutting,node_shortestpaths,node_bellman,node_algorithms toneAmber
class node_templates,node_hashsnippet,node_segmenttree,node_numbertools toneMint
class node_contestant,node_output toneIndigo
```

## Components

### Judge solutions

- [CSES problems](https://github.com/sadatislam9696/competitive-programming/tree/main/CSES): `CSES`
- [CodeChef problems](https://github.com/sadatislam9696/competitive-programming/tree/main/Codechef): `Codechef`
- [Graph problems](https://github.com/sadatislam9696/competitive-programming/tree/main/Graph%20-%20problem): `Graph - problem`
- [Number theory](https://github.com/sadatislam9696/competitive-programming/blob/main/Number%20Theory/2154C%20-%20C1.%20No%20Cost%20Too%20Great%20(Easy%20Version).cpp): `Number Theory/2154C - C1. No Cost Too Great (Easy Version).cpp`
- [Reachability counts](https://github.com/sadatislam9696/competitive-programming/blob/main/Litoj/Best%20Picnic%20Ever.cpp): `Litoj/Best Picnic Ever.cpp`
- [String periods](https://github.com/sadatislam9696/competitive-programming/blob/main/String/Number_of_divisor_of_string.cpp): `String/Number_of_divisor_of_string.cpp`
- [Route connectivity](https://github.com/sadatislam9696/competitive-programming/blob/main/CSES/1682%20-%20Flight%20Routes%20Check.cpp): `CSES/1682 - Flight Routes Check.cpp`

### Algorithm studies

- [Dynamic programming](https://github.com/sadatislam9696/competitive-programming/tree/main/Dp%20-%20problem): `Dp - problem`
- [Rod cutting](https://github.com/sadatislam9696/competitive-programming/blob/main/Dp%20-%20problem/Rod%20cutting.cpp): `Dp - problem/Rod cutting.cpp`
- [Shortest paths](https://github.com/sadatislam9696/competitive-programming/tree/main/Topic%20Base%20Code): `Topic Base Code`
- [Bellman-Ford](https://github.com/sadatislam9696/competitive-programming/blob/main/Topic%20Base%20Code/Bellman%20Ford%20Algorithm.cpp): `Topic Base Code/Bellman Ford Algorithm.cpp`
- [Algorithm examples](https://github.com/sadatislam9696/competitive-programming/tree/main/GeeksforGeeks): `GeeksforGeeks`

### Reusable snippets

- [General template](https://github.com/sadatislam9696/competitive-programming/blob/main/ALL%20template.cpp): `ALL template.cpp`
- [Double hashing](https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/hasing_double.cpp): `my-sublime-snipet/hasing_double.cpp`
- [Segment trees](https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/segment_tree.cpp): `my-sublime-snipet/segment_tree.cpp`
- [Number tools](https://github.com/sadatislam9696/competitive-programming/blob/main/my-sublime-snipet/prime_factorization_using_spf.cpp): `my-sublime-snipet/prime_factorization_using_spf.cpp`

### Other components

- **Contestant**
- **Program output**

## Connections

- Contestant → CSES problems: provides input
- CSES problems → Program output: prints answer
- Contestant → CodeChef problems: provides input
- CodeChef problems → Program output: prints answer
- Contestant → Graph problems: provides input
- Graph problems → Program output: prints answer
- Contestant → Number theory: provides input
- Number theory → Program output: prints answer
- Contestant → Reachability counts: provides input
- Reachability counts → Program output: prints answer
- Contestant → String periods: provides input
- String periods → Program output: prints answer
- Contestant → Rod cutting: provides input
- Rod cutting → Program output: prints answer
- Contestant → Bellman-Ford: provides input
- Bellman-Ford → Program output: prints distances
- Contestant → Route connectivity: provides input
- Route connectivity → Program output: prints verdict
- Contestant → Dynamic programming: provides input
- Dynamic programming → Program output: prints answer
- Contestant → Shortest paths: provides input
- Shortest paths → Program output: prints distances
- Contestant → Algorithm examples: provides input
- Algorithm examples → Program output: prints result
