# aizennguyen/yksw architecture

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

- Interactive diagram: https://gitdiagram.com/aizennguyen/yksw
- Repository: https://github.com/aizennguyen/yksw

## Overview

This repository is a collection of independent C++ contest and practice programs, not a unified application. A typical user runs one executable, supplies problem-specific input, and receives that program’s answer on standard output or a task-specific output file. The graph groups the collection by its directory organization and shows representative standalone workflows; the sampled solutions do not call one another. The tree and excerpts support these examples, but do not establish a shared runtime or how unsampled programs behave.

Main entry points: [`2627 KS3/CAU3.cpp`](https://github.com/aizennguyen/yksw/blob/main/2627%20KS3/CAU3.cpp) (Distinct Window), [`CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp`](https://github.com/aizennguyen/yksw/blob/main/CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp) (Next Multiple), [`CoThuy/NguyenGiaBao28-08/matkhau.cpp`](https://github.com/aizennguyen/yksw/blob/main/CoThuy/NguyenGiaBao28-08/matkhau.cpp) (Password Primes), [`Yugihacker/TKNP/A.cpp`](https://github.com/aizennguyen/yksw/blob/main/Yugihacker/TKNP/A.cpp) (Sorted Search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_practice["Practice Sets"]
  node_cau3["Distinct Window<br/>[CAU3.cpp]"]
  node_app["Next Multiple<br/>[APP.cpp]"]
  node_matkhau["Password Primes<br/>[matkhau.cpp]"]
  node_tksearch["Sorted Search<br/>[A.cpp]"]
end

subgraph group_contests["Contest Solutions"]
  node_atcoder["Array Sorting Check<br/>[abc478c.cpp]"]
  node_numeric["String Mapping"]
end

subgraph group_algorithms["Algorithm Examples"]
  node_segmin["Range Minimum"]
  node_segsum["Range Sum"]
  node_divisible["Divisible Subarrays<br/>[DivisibleByD.cpp]"]
  node_difference["Pair Difference<br/>[thuat.cpp]"]
end

subgraph group_tools["Standalone Tools"]
  node_sudoku["Sudoku Solver<br/>[sudokuBanEo.cpp]"]
end

node_user(("Problem Solver"))
node_answer["Answer"]

node_user -->|"provides input"| node_cau3
node_cau3 -->|"prints result"| node_answer
node_user -->|"provides input"| node_app
node_app -->|"prints result"| node_answer
node_user -->|"provides input"| node_matkhau
node_matkhau -->|"writes result"| node_answer
node_user -->|"provides input"| node_tksearch
node_tksearch -->|"prints result"| node_answer
node_user -->|"provides input"| node_atcoder
node_atcoder -->|"prints result"| node_answer
node_user -->|"provides input"| node_numeric
node_numeric -->|"prints result"| node_answer
node_user -->|"provides input"| node_segmin
node_segmin -->|"prints queries"| node_answer
node_user -->|"provides input"| node_segsum
node_segsum -->|"prints queries"| node_answer
node_user -->|"provides input"| node_divisible
node_divisible -->|"prints counts"| node_answer
node_user -->|"provides input"| node_difference
node_difference -->|"prints count"| node_answer
node_user -->|"provides puzzle"| node_sudoku
node_sudoku -->|"prints solution"| node_answer

click node_cau3 "https://github.com/aizennguyen/yksw/blob/main/2627%20KS3/CAU3.cpp"
click node_app "https://github.com/aizennguyen/yksw/blob/main/CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp"
click node_matkhau "https://github.com/aizennguyen/yksw/blob/main/CoThuy/NguyenGiaBao28-08/matkhau.cpp"
click node_tksearch "https://github.com/aizennguyen/yksw/blob/main/Yugihacker/TKNP/A.cpp"
click node_atcoder "https://github.com/aizennguyen/yksw/blob/main/AtCoder/abc478c.cpp"
click node_numeric "https://github.com/aizennguyen/yksw/blob/main/Codeforces/LinhTinh/NumericStringTemplate.cpp"
click node_segmin "https://github.com/aizennguyen/yksw/blob/main/Marisa/SegmentTree/PointUpdate-MiniumQuery.cpp"
click node_segsum "https://github.com/aizennguyen/yksw/blob/main/Marisa/SegmentTree/PointUpdate-SumQuery.cpp"
click node_divisible "https://github.com/aizennguyen/yksw/blob/main/Marisa/DivisibleByD.cpp"
click node_difference "https://github.com/aizennguyen/yksw/blob/main/sendtick/thuat.cpp"
click node_sudoku "https://github.com/aizennguyen/yksw/blob/main/tool/sudokuBanEo.cpp"

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_cau3,node_app,node_matkhau,node_tksearch toneBlue
class node_atcoder,node_numeric toneAmber
class node_segmin,node_segsum,node_divisible,node_difference toneMint
class node_sudoku toneRose
class node_user,node_answer toneIndigo
```

## Components

### Practice Sets

- [Distinct Window](https://github.com/aizennguyen/yksw/blob/main/2627%20KS3/CAU3.cpp): `2627 KS3/CAU3.cpp`
- [Next Multiple](https://github.com/aizennguyen/yksw/blob/main/CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp): `CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp`
- [Password Primes](https://github.com/aizennguyen/yksw/blob/main/CoThuy/NguyenGiaBao28-08/matkhau.cpp): `CoThuy/NguyenGiaBao28-08/matkhau.cpp`
- [Sorted Search](https://github.com/aizennguyen/yksw/blob/main/Yugihacker/TKNP/A.cpp): `Yugihacker/TKNP/A.cpp`

### Contest Solutions

- [Array Sorting Check](https://github.com/aizennguyen/yksw/blob/main/AtCoder/abc478c.cpp): `AtCoder/abc478c.cpp`
- [String Mapping](https://github.com/aizennguyen/yksw/blob/main/Codeforces/LinhTinh/NumericStringTemplate.cpp): `Codeforces/LinhTinh/NumericStringTemplate.cpp`

### Algorithm Examples

- [Range Minimum](https://github.com/aizennguyen/yksw/blob/main/Marisa/SegmentTree/PointUpdate-MiniumQuery.cpp): `Marisa/SegmentTree/PointUpdate-MiniumQuery.cpp`
- [Range Sum](https://github.com/aizennguyen/yksw/blob/main/Marisa/SegmentTree/PointUpdate-SumQuery.cpp): `Marisa/SegmentTree/PointUpdate-SumQuery.cpp`
- [Divisible Subarrays](https://github.com/aizennguyen/yksw/blob/main/Marisa/DivisibleByD.cpp): `Marisa/DivisibleByD.cpp`
- [Pair Difference](https://github.com/aizennguyen/yksw/blob/main/sendtick/thuat.cpp): `sendtick/thuat.cpp`

### Standalone Tools

- [Sudoku Solver](https://github.com/aizennguyen/yksw/blob/main/tool/sudokuBanEo.cpp): `tool/sudokuBanEo.cpp`

### Other components

- **Problem Solver**
- **Answer**

## Connections

- Problem Solver → Distinct Window: provides input (evidence: `2627 KS3/CAU3.cpp`)
- Distinct Window → Answer: prints result (evidence: `2627 KS3/CAU3.cpp`)
- Problem Solver → Next Multiple: provides input (evidence: `CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp`)
- Next Multiple → Answer: prints result (evidence: `CPPros/GOGOVOI-4.0-NC/Sohoccoban/APP.cpp`)
- Problem Solver → Password Primes: provides input (evidence: `CoThuy/NguyenGiaBao28-08/matkhau.cpp`)
- Password Primes → Answer: writes result (evidence: `CoThuy/NguyenGiaBao28-08/matkhau.cpp`)
- Problem Solver → Sorted Search: provides input (evidence: `Yugihacker/TKNP/A.cpp`)
- Sorted Search → Answer: prints result (evidence: `Yugihacker/TKNP/A.cpp`)
- Problem Solver → Array Sorting Check: provides input (evidence: `AtCoder/abc478c.cpp`)
- Array Sorting Check → Answer: prints result (evidence: `AtCoder/abc478c.cpp`)
- Problem Solver → String Mapping: provides input (evidence: `Codeforces/LinhTinh/NumericStringTemplate.cpp`)
- String Mapping → Answer: prints result (evidence: `Codeforces/LinhTinh/NumericStringTemplate.cpp`)
- Problem Solver → Range Minimum: provides input (evidence: `Marisa/SegmentTree/PointUpdate-MiniumQuery.cpp`)
- Range Minimum → Answer: prints queries (evidence: `Marisa/SegmentTree/PointUpdate-MiniumQuery.cpp`)
- Problem Solver → Range Sum: provides input (evidence: `Marisa/SegmentTree/PointUpdate-SumQuery.cpp`)
- Range Sum → Answer: prints queries (evidence: `Marisa/SegmentTree/PointUpdate-SumQuery.cpp`)
- Problem Solver → Divisible Subarrays: provides input (evidence: `Marisa/DivisibleByD.cpp`)
- Divisible Subarrays → Answer: prints counts (evidence: `Marisa/DivisibleByD.cpp`)
- Problem Solver → Pair Difference: provides input (evidence: `sendtick/thuat.cpp`)
- Pair Difference → Answer: prints count (evidence: `sendtick/thuat.cpp`)
- Problem Solver → Sudoku Solver: provides puzzle (evidence: `tool/sudokuBanEo.cpp`)
- Sudoku Solver → Answer: prints solution (evidence: `tool/sudokuBanEo.cpp`)
