cothrax-acm-scl
├── 0-emacs.el
├── 1-head-short.cpp
├── 2-data-structure
│ ├── block.cpp
│ ├── dsu.cpp
│ ├── odt.cpp
│ ├── offline
│ │ ├── cdq.cpp
│ │ └── mo.cpp
│ ├── queue.cpp
│ ├── st2.cpp
│ ├── st.cpp
│ ├── tree
│ │ ├── bit.cpp
│ │ ├── cartesian-tree.cpp
│ │ ├── centroid-decomposition.cpp
│ │ ├── fortile.cpp
│ │ ├── hld.cpp
│ │ ├── lct.cpp
│ │ ├── splay.cpp
│ │ ├── treap.cpp
│ │ └── virtual-tree.cpp
│ └── tree-in-tree
│ ├── bit-seg.cpp
│ └── bit-treap.cpp
├── 3-string
│ ├── acm.cpp
│ ├── general-sam.cpp
│ ├── hash.cpp
│ ├── kmp.cpp
│ ├── manacher.cpp
│ ├── pam.cpp
│ ├── sa.cpp
│ └── sam.cpp
├── 4-math
│ ├── algebra
│ │ ├── fft.cpp
│ │ ├── fwt.cpp
│ │ ├── linear-basis.cpp
│ │ ├── matrix.cpp
│ │ ├── ntt-3-mod.cpp
│ │ └── ntt.cpp
│ ├── combinatorics
│ │ ├── matrix-tree.cpp
│ │ └── polya.cpp
│ ├── misc
│ │ └── permutation.cpp
│ └── number-theory
│ ├── crt.cpp
│ ├── discrete-log.cpp
│ ├── euler.cpp
│ ├── lucas.cpp
│ ├── mobius.cpp
│ └── modsqr.cpp
├── 5-graph-theory
│ ├── 2-sat.cpp
│ ├── euler-tour.cpp
│ ├── hungary.cpp
│ ├── km.cpp
│ ├── lca.cpp
│ ├── max-clique.cpp
│ ├── max-flow.cpp
│ ├── min-cost-max-flow.cpp
│ ├── min-cut.cpp
│ ├── sp.cpp
│ └── tarjan.cpp
├── 6-geometry
│ ├── basics.cpp
│ ├── closest-pair.cpp
│ ├── convex.cpp
│ ├── half-plane.cpp
│ └── ploygon.cpp
├── 7-misc
│ ├── discrete.cpp
│ └── mt19937.cpp
├── my-scl.pdf
└── wa.pdf