diff --git a/.gitignore b/.gitignore
index da699601f6006f002460a5382a193f1c186e1536..58e060a817e8427b77d0705189d16ccca415b43f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ _minted*
 *.dvi
 *.synctex.gz
 *.aux
+*.out
 
 testes/hld-ps
 testes/fenwick-tree
diff --git a/caderno.pdf b/caderno.pdf
index c9fc0a587da84d4d9a66a59ac7c5ddaf87fdd58c..563c5b2fdbc72a17ee29aeecfe6988e601f667c5 100644
Binary files a/caderno.pdf and b/caderno.pdf differ
diff --git a/caderno/TTF/FantasqueSansMono-Bold.ttf b/caderno/TTF/FantasqueSansMono-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..b1b07f60ec6fcac16634d40031c1dd1ae22a0a36
Binary files /dev/null and b/caderno/TTF/FantasqueSansMono-Bold.ttf differ
diff --git a/caderno/TTF/FantasqueSansMono-BoldItalic.ttf b/caderno/TTF/FantasqueSansMono-BoldItalic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..fdb4d9f0f41c80f849b1009bf27e2f76a0518231
Binary files /dev/null and b/caderno/TTF/FantasqueSansMono-BoldItalic.ttf differ
diff --git a/caderno/TTF/FantasqueSansMono-Italic.ttf b/caderno/TTF/FantasqueSansMono-Italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..ae0ab728e64aee86c4f52a82ed6b83fa49c8fc12
Binary files /dev/null and b/caderno/TTF/FantasqueSansMono-Italic.ttf differ
diff --git a/caderno/TTF/FantasqueSansMono-Regular.ttf b/caderno/TTF/FantasqueSansMono-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..fa6be4d88e65142fa98c610c7b16eb4930277d43
Binary files /dev/null and b/caderno/TTF/FantasqueSansMono-Regular.ttf differ
diff --git a/caderno/caderno.tex b/caderno/caderno.tex
index bf2cceef4d65c981cdee1a5c7886e99001b5d326..2adda6959bf17fe38b2b12d256f9c0a4fd0a83a1 100644
--- a/caderno/caderno.tex
+++ b/caderno/caderno.tex
@@ -1,8 +1,7 @@
 \documentclass[titlepage,a4paper]{article}
 \usepackage[margin=1cm,bmargin=2cm,footskip=1cm]{geometry}
-\usepackage{minted}
+\usepackage{listings}
 \usepackage[T1]{fontenc}
-\usemintedstyle{vs}
 \usepackage{multicol}
 \usepackage[brazilian]{babel}
 \usepackage{lmodern}
@@ -11,12 +10,75 @@
 \usepackage{multirow}
 \usepackage{fontspec}
 \usepackage{hyperref}
-\setmonofont{Fantasque Sans Mono}
+\usepackage{xcolor}
+\setmonofont[
+  Path = caderno/TTF/,
+  UprightFont = *-Regular,
+  BoldFont = *-Bold,
+  ItalicFont = *-Italic,
+  BoldItalicFont = *-BoldItalic,
+  Extension = .ttf
+]{Fantasque Sans Mono}
+
+\definecolor{commentgreen}{RGB}{2,112,10}
+\definecolor{eminence}{RGB}{210,31,60}
 
 \newcommand{\bigO}{\mathcal{O}}
-\newcommand{\importsource}[2][cpp]{
-  \footnotesize
-  \inputminted[linenos, xleftmargin=\parindent]{#1}{fontes/#2}
+\lstset{
+  numbers=left,
+  xleftmargin=\parindent,
+  basicstyle=\footnotesize\ttfamily,
+  showspaces=false,
+  showstringspaces=false,
+  language=C++,
+  columns=fullflexible,
+  commentstyle=\color{commentgreen},
+  keywordstyle=\color{eminence},
+  escapeinside={<@}{@>}
+}
+\lstset{literate=
+  {á}{{\'a\lst@whitespacefalse}}1 {é}{{\'e\lst@whitespacefalse}}1
+  {í}{{\'i\lst@whitespacefalse}}1 {ó}{{\'o\lst@whitespacefalse}}1
+  {ú}{{\'u\lst@whitespacefalse}}1
+  {Á}{{\'A\lst@whitespacefalse}}1 {É}{{\'E\lst@whitespacefalse}}1
+  {Í}{{\'I\lst@whitespacefalse}}1 {Ó}{{\'O\lst@whitespacefalse}}1
+  {Ú}{{\'U\lst@whitespacefalse}}1
+  {à}{{\`a\lst@whitespacefalse}}1 {è}{{\`e\lst@whitespacefalse}}1
+  {ì}{{\`i\lst@whitespacefalse}}1 {ò}{{\`o\lst@whitespacefalse}}1
+  {ù}{{\`u\lst@whitespacefalse}}1
+  {À}{{\`A\lst@whitespacefalse}}1
+  {È}{{\'E\lst@whitespacefalse}}1 {Ì}{{\`I\lst@whitespacefalse}}1
+  {Ò}{{\`O\lst@whitespacefalse}}1 {Ù}{{\`U\lst@whitespacefalse}}1
+  {ä}{{\"a\lst@whitespacefalse}}1 {ë}{{\"e\lst@whitespacefalse}}1
+  {ï}{{\"i\lst@whitespacefalse}}1 {ö}{{\"o\lst@whitespacefalse}}1
+  {ü}{{\"u\lst@whitespacefalse}}1
+  {Ä}{{\"A\lst@whitespacefalse}}1 {Ë}{{\"E\lst@whitespacefalse}}1
+  {Ï}{{\"I\lst@whitespacefalse}}1 {Ö}{{\"O\lst@whitespacefalse}}1
+  {Ü}{{\"U\lst@whitespacefalse}}1
+  {â}{{\^a\lst@whitespacefalse}}1 {ê}{{\^e\lst@whitespacefalse}}1
+  {î}{{\^i\lst@whitespacefalse}}1 {ô}{{\^o\lst@whitespacefalse}}1
+  {û}{{\^u\lst@whitespacefalse}}1
+  {Â}{{\^A\lst@whitespacefalse}}1 {Ê}{{\^E\lst@whitespacefalse}}1
+  {Î}{{\^I\lst@whitespacefalse}}1 {Ô}{{\^O\lst@whitespacefalse}}1
+  {Û}{{\^U\lst@whitespacefalse}}1
+  {Ã}{{\~A\lst@whitespacefalse}}1 {ã}{{\~a\lst@whitespacefalse}}1
+  {Õ}{{\~O\lst@whitespacefalse}}1 {õ}{{\~o\lst@whitespacefalse}}1
+  {œ}{{\oe\lst@whitespacefalse}}1 {Œ}{{\OE\lst@whitespacefalse}}1
+  {æ}{{\ae\lst@whitespacefalse}}1 {Æ}{{\AE\lst@whitespacefalse}}1
+  {ß}{{\ss\lst@whitespacefalse}}1
+  {ű}{{\H{u}\lst@whitespacefalse}}1 {Ű}{{\H{U}\lst@whitespacefalse}}1
+  {ő}{{\H{o}\lst@whitespacefalse}}1 {Ő}{{\H{O}\lst@whitespacefalse}}1
+  {ç}{{\c c\lst@whitespacefalse}}1 {Ç}{{\c C\lst@whitespacefalse}}1
+  {ø}{{\o\lst@whitespacefalse}}1
+  {å}{{\r a\lst@whitespacefalse}}1 {Å}{{\r A\lst@whitespacefalse}}1
+  {€}{{\euro\lst@whitespacefalse}}1 {£}{{\pounds\lst@whitespacefalse}}1
+  {«}{{\guillemotleft\lst@whitespacefalse}}1
+  {»}{{\guillemotright\lst@whitespacefalse}}1
+  {ñ}{{\~n\lst@whitespacefalse}}1 {Ñ}{{\~N\lst@whitespacefalse}}1
+  {¿}{{?`\lst@whitespacefalse}}1
+  {º}{{\textordmasculine\lst@whitespacefalse}}1
+  {~}{{\raisebox{0.5ex}{\texttildelow}\lst@whitespacefalse}}1
+  {^}{{\raisebox{-0.75ex}{\^{}}\lst@whitespacefalse}}1
 }
 
 \begin{document}
@@ -151,19 +213,19 @@ para $a$ e $m$ coprimos.
 \section{C++}
 
 \subsection{Esboço}
-\importsource{template.cpp}
+\lstinputlisting{fontes/template.cpp}
 \subsection{Bashrc}
-\importsource[bash]{bashrc}
+\lstinputlisting[language=bash]{fontes/bashrc}
 \subsection{Vimrc}
-\importsource[vim]{vimrc}
+\lstinputlisting{fontes/vimrc}
 \subsection{Teste de estresse}
-\importsource[bash]{stress.sh}
+\lstinputlisting[language=bash]{fontes/stress.sh}
 \subsection{Gerador}
-\importsource{gen.cpp}
+\lstinputlisting{fontes/gen.cpp}
 
 \section{Estrutura de Dados}
 \subsection{Soma de prefixos}
-\importsource{prefix-sum.h}
+\lstinputlisting{fontes/prefix-sum.h}
 
 \subsection{Árvore de Fenwick}
 \begin{tabular}{l|l|l}
@@ -184,7 +246,7 @@ para $a$ e $m$ coprimos.
   \hline
 \end{tabular}
 
-\importsource{fenwick-tree.h}
+\lstinputlisting{fontes/fenwick-tree.h}
 
 \subsection{Árvore de Fenwick 2D}
 \begin{tabular}{l|l|l}
@@ -195,7 +257,7 @@ para $a$ e $m$ coprimos.
   \hline
 \end{tabular}
 
-\importsource{fenwick-2d-tree.h}
+\lstinputlisting{fontes/fenwick-2d-tree.h}
 
 \subsection{Árvore de Fenwick intervalar}
 \begin{tabular}{l|l|l}
@@ -206,46 +268,46 @@ para $a$ e $m$ coprimos.
   \hline
 \end{tabular}
 
-\importsource{fenwick-range-tree.h}
+\lstinputlisting{fontes/fenwick-range-tree.h}
 
 \subsection{Tabela esparsa}
-\importsource{sparse-table.h}
+\lstinputlisting{fontes/sparse-table.h}
 
 \subsection{União-busca}
-\importsource{disjoint.h}
+\lstinputlisting{fontes/disjoint.h}
 
 \subsection{Pilha mínima}
-\importsource{min-stack.h}
+\lstinputlisting{fontes/min-stack.h}
 
 \subsection{Fila mínima (sabendo o que remover)}
-\importsource{min-queue.h}
+\lstinputlisting{fontes/min-queue.h}
 
 \subsection{Fila mínima}
-\importsource{min-queue-2.h}
+\lstinputlisting{fontes/min-queue-2.h}
 
 \subsection{Fila mínima (guarda os elementos)}
-\importsource{min-queue-3.h}
+\lstinputlisting{fontes/min-queue-3.h}
 
 \subsection{Maior elemento anterior}
-\importsource{pge.h}
+\lstinputlisting{fontes/pge.h}
 
 \subsection{Menor elemento anterior}
-\importsource{ple.h}
+\lstinputlisting{fontes/ple.h}
 
 \subsection{Próximo maior elemento}
-\importsource{nge.h}
+\lstinputlisting{fontes/nge.h}
 
 \subsection{Próximo menor elemento}
-\importsource{nle.h}
+\lstinputlisting{fontes/nle.h}
 
 \subsection{Conjunto de intervalos coloridos}
-\importsource{interval-set.h}
+\lstinputlisting{fontes/interval-set.h}
 
 \subsection{Hash map simples}
-\importsource{simple-hash.h}
+\lstinputlisting{fontes/simple-hash.h}
 
 \subsection{Hash customizado}
-\importsource{custom-hash.h}
+\lstinputlisting{fontes/custom-hash.h}
 
 \subsection{Árvore de segmentos recursiva}
 \begin{tabular}{l|l|l}
@@ -268,28 +330,28 @@ para $a$ e $m$ coprimos.
   \hline
 \end{tabular}
 
-\importsource{strec.h}
+\lstinputlisting{fontes/strec.h}
 
 \subsection{Árvore de segmentos iterativa}
-\importsource{stit.h}
+\lstinputlisting{fontes/stit.h}
 
 \subsection{Árvore de segmentos preguiçosa rec.}
-\importsource{lstrec.h}
+\lstinputlisting{fontes/lstrec.h}
 
 \subsection{Nó de árvore de segmentos}
-\importsource{node.h}
+\lstinputlisting{fontes/node.h}
 
 \clearpage
 \subsection{Árvore de segmentos preguiçosa iter.}
-\importsource{lstit.h}
+\lstinputlisting{fontes/lstit.h}
 
 \section{Grafos}
 
 \subsection{Articulações e Pontes}
-\importsource{articbridges.h}
+\lstinputlisting{fontes/articbridges.h}
 
 \subsection{Stoer-Wagner}
-\importsource{stoer-wagner.h}
+\lstinputlisting{fontes/stoer-wagner.h}
 
 \clearpage
 \subsection{Emparelhamento estável}
@@ -298,68 +360,68 @@ para $a$ e $m$ coprimos.
   $\bigO(n^2)$ \\
   \hline
 \end{tabular}
-\importsource{stable-matching.h}
+\lstinputlisting{fontes/stable-matching.h}
 
 \subsection{Fluxo máximo}
-\importsource{ffek.h}
+\lstinputlisting{fontes/ffek.h}
 
 \subsection{Fluxo de custo mínimo}
-\importsource{ffekmincost.h}
+\lstinputlisting{fontes/ffekmincost.h}
 
 \subsection{Busca em profundidade recursiva}
-\importsource{dfsrec.h}
+\lstinputlisting{fontes/dfsrec.h}
 
 \subsection{Busca em profundidade com pilha}
-\importsource{dfsstack.h}
+\lstinputlisting{fontes/dfsstack.h}
 
 \subsection{Busca em largura}
-\importsource{bfs.h}
+\lstinputlisting{fontes/bfs.h}
 
 \subsection{Busca em largura 0-1}
-\importsource{bfs01.h}
+\lstinputlisting{fontes/bfs01.h}
 
 \subsection{Componentes fortes -- Tarjan}
-\importsource{tarjan.h}
+\lstinputlisting{fontes/tarjan.h}
 
 \subsection{Componentes fortes -- Kosaraju}
-\importsource{kosaraju.h}
+\lstinputlisting{fontes/kosaraju.h}
 
 \subsection{Caminho mínimo -- Dijkstra}
-\importsource{dijkstra.h}
+\lstinputlisting{fontes/dijkstra.h}
 
 \subsection{Caminho mínimo -- Bellman-Ford}
-\importsource{bellman-ford.h}
+\lstinputlisting{fontes/bellman-ford.h}
 
 \subsection{Caminho mínimo -- SPFA}
-\importsource{spfa.h}
+\lstinputlisting{fontes/spfa.h}
 
 \subsection{Caminhos mínimos -- Floyd-Warshall}
-\importsource{floyd-warshall.h}
+\lstinputlisting{fontes/floyd-warshall.h}
 
 \subsection{Ordenação topológica}
-\importsource{topo.h}
+\lstinputlisting{fontes/topo.h}
 
 \subsection{Árvore geradora mínima -- Prim}
-\importsource{prim.h}
+\lstinputlisting{fontes/prim.h}
 
 \subsection{Árvore geradora mínima -- Kruskal}
-\importsource{kruskal.h}
+\lstinputlisting{fontes/kruskal.h}
 
 \subsection{Ascensão binária}
-\importsource{bl.h}
+\lstinputlisting{fontes/bl.h}
 
 \subsection{Menor anc. comum -- Offline}
-\importsource{lca-offline.h}
+\lstinputlisting{fontes/lca-offline.h}
 
 \clearpage
 \subsection{Menor anc. comum -- Ancensão binária}
-\importsource{bllca.h}
+\lstinputlisting{fontes/bllca.h}
 
 \subsection{Menor no maior}
-\importsource{small-to-large.h}
+\lstinputlisting{fontes/small-to-large.h}
 
 \subsection{Decomposição centróide}
-\importsource{centroid.h}
+\lstinputlisting{fontes/centroid.h}
 
 \subsection{Decomposição pesado-leve}
 \begin{tabular}{l|l}
@@ -374,7 +436,7 @@ para $a$ e $m$ coprimos.
   Atualização/Consulta $\bigO(\lg^2 n)$ \\
   \hline
 \end{tabular}
-\importsource{hld.h}
+\lstinputlisting{fontes/hld.h}
 
 \subsection{Empar. máximo bipartido -- Kuhn}
 \begin{tabular}{l}
@@ -382,58 +444,58 @@ para $a$ e $m$ coprimos.
   As partes tem enumerações distintas
   \\ \hline
 \end{tabular}
-\importsource{kuhn.h}
+\lstinputlisting{fontes/kuhn.h}
 
 \subsection{Empar. máximo bipartido -- Hopcroft}
-\importsource{hopcroft.h}
+\lstinputlisting{fontes/hopcroft.h}
 
 \subsection{Decomposição raiz quadrada de árvore}
-\importsource{stdt.h}
+\lstinputlisting{fontes/stdt.h}
 
 \subsection{Menor anc. comum -- Dec. raiz quad.}
-\importsource{stdtlca.h}
+\lstinputlisting{fontes/stdtlca.h}
 
 \section{Matemática}
 
 \subsection{Operações comuns}
-\importsource{numbers.h}
+\lstinputlisting{fontes/numbers.h}
 
 \subsection{Compressão de coordenadas}
-\importsource{coordmap.h}
+\lstinputlisting{fontes/coordmap.h}
 
 \subsection{Sequência de Bruijn}
 Número de sequências distintas:
 \begin{align*}
   \frac{(k!)^{k^{n-1}}}{k^n}
 \end{align*}
-\importsource{bruijn.h}
+\lstinputlisting{fontes/bruijn.h}
 
 \subsection{Problema de Josephus}
-\importsource{josephus.h}
+\lstinputlisting{fontes/josephus.h}
 
 \subsection{Primeiros e últimos digitos de $n^k$}
-\importsource{nk-first-last-digits.h}
+\lstinputlisting{fontes/nk-first-last-digits.h}
 
 \subsection{Triângulo de Pascal}
-\importsource{pascal-triangle.h}
+\lstinputlisting{fontes/pascal-triangle.h}
 
 \subsection{2-SAT}
-\importsource{2-sat.h}
+\lstinputlisting{fontes/2-sat.h}
 
 \subsection{Inclusão-Exclusão}
-\importsource{inclusion-exclusion.h}
+\lstinputlisting{fontes/inclusion-exclusion.h}
 
 \subsection{Mínimo excluído com conjunto}
-\importsource{mexset.h}
+\lstinputlisting{fontes/mexset.h}
 
 \subsection{Mínimo excluído}
-\importsource{mex.h}
+\lstinputlisting{fontes/mex.h}
 
 \subsection{Nímero (Números de Grundy)}
-\importsource{grundy.h}
+\lstinputlisting{fontes/grundy.h}
 
 \subsection{Jogo de Nim}
-\importsource{nim.h}
+\lstinputlisting{fontes/nim.h}
 
 \subsection{Euclides estendido/inv. multiplicativo}
 \begin{tabular}{l}
@@ -446,16 +508,16 @@ $\bigO(\lg \min(a, b))$ \\
   ax &= gcd(a, b) \pmod{b} \\
   (\gcd(a, b) = 1) &\implies (ax = 1 \pmod{b})
 \end{align*}
-\importsource{extgcd.h}
+\lstinputlisting{fontes/extgcd.h}
 
 \subsection{Detecção de ciclo}
-\importsource{floyd.h}
+\lstinputlisting{fontes/floyd.h}
 
 \subsection{Equação diofantina linear}
 \begin{align*}
 ax + by = c
 \end{align*}
-\importsource{diophantine.h}
+\lstinputlisting{fontes/diophantine.h}
 
 \subsection{Multiplicação -- Karatsuba}
 \begin{tabular}{l}
@@ -463,10 +525,10 @@ ax + by = c
   $\bigO(n^{\log_3 n})$ \\
 \hline
 \end{tabular}
-\importsource{karatsuba.h}
+\lstinputlisting{fontes/karatsuba.h}
 
 \subsection{Números de Catalão}
-\importsource{catalan.h}
+\lstinputlisting{fontes/catalan.h}
 
 \subsection{Fatoração por tentativa}
 \begin{tabular}{l}
@@ -474,7 +536,7 @@ ax + by = c
   $\bigO(\sqrt{n})$ \\
 \hline
 \end{tabular}
-\importsource{factorize.h}
+\lstinputlisting{fontes/factorize.h}
 
 \subsection{Crivo de Eratóstenes}
 \begin{tabular}{l}
@@ -482,7 +544,7 @@ ax + by = c
   $\bigO(n \lg\lg n)$ \\
 \hline
 \end{tabular}
-\importsource{sieve.h}
+\lstinputlisting{fontes/sieve.h}
 
 \subsection{Crivo de número de divisores}
 \begin{tabular}{l}
@@ -490,7 +552,7 @@ ax + by = c
   $\bigO(n \lg n)$ \\
 \hline
 \end{tabular}
-\importsource{divisors.h}
+\lstinputlisting{fontes/divisors.h}
 
 \subsection{Crivo de soma dos divisores}
 \begin{tabular}{l}
@@ -498,7 +560,7 @@ ax + by = c
   $\bigO(n \lg n)$ \\
 \hline
 \end{tabular}
-\importsource{sumdivsieve.h}
+\lstinputlisting{fontes/sumdivsieve.h}
 
 \subsection{Totiente de Euler}
 \begin{tabular}{l}
@@ -506,7 +568,7 @@ ax + by = c
   $\bigO(n \lg \lg n)$ \\
 \hline
 \end{tabular}
-\importsource{euler-totient.h}
+\lstinputlisting{fontes/euler-totient.h}
 
 \subsection{Crivo de soma dos divisores}
 \begin{tabular}{l}
@@ -514,7 +576,7 @@ ax + by = c
   $\bigO(n \lg n)$ \\
 \hline
 \end{tabular}
-\importsource{sumdivsieve.h}
+\lstinputlisting{fontes/sumdivsieve.h}
 
 \subsection{Crivo de maior divisor primo}
 \begin{tabular}{l}
@@ -522,7 +584,7 @@ ax + by = c
   $\bigO(n \lg n)$ \\
 \hline
 \end{tabular}
-\importsource{bigpsieve.h}
+\lstinputlisting{fontes/bigpsieve.h}
 
 \subsection{Crivo linear}
 \begin{tabular}{l}
@@ -530,13 +592,13 @@ ax + by = c
   $\bigO(n)$ \\
 \hline
 \end{tabular}
-\importsource{linearsieve.h}
+\lstinputlisting{fontes/linearsieve.h}
 
 \subsection{Exponenciação binária}
-\importsource{binary-pow.h}
+\lstinputlisting{fontes/binary-pow.h}
 
 \subsection{Miller-Rabin}
-\importsource{miller-rabin.h}
+\lstinputlisting{fontes/miller-rabin.h}
 
 \clearpage
 \subsection{Pollard Rho}
@@ -545,10 +607,10 @@ ax + by = c
   $\bigO(n^{1/4})$ \\
 \hline
 \end{tabular}
-\importsource{pollardrho.h}
+\lstinputlisting{fontes/pollardrho.h}
 
 \subsection{Fibonacci}
-\importsource{fibonacci.h}
+\lstinputlisting{fontes/fibonacci.h}
 
 \subsection{Teorema chinês do resto}
 \begin{tabular}{l}
@@ -556,7 +618,7 @@ ax + by = c
   $\bigO(t \lg(m_1 m_2 \ldots m_t))$ \\
 \hline
 \end{tabular}
-\importsource{crt.h}
+\lstinputlisting{fontes/crt.h}
 
 \subsection{Teorema chinês do resto generalizado}
 \begin{tabular}{l|l}
@@ -565,23 +627,23 @@ ax + by = c
   Infinitas soluções $\pm \text{lcm}(m_1m_2\ldots m_t)$
   \\ \hline
 \end{tabular}
-\importsource{noncoprimecrt.h}
+\lstinputlisting{fontes/noncoprimecrt.h}
 
 \section{Strings}
 
 \subsection{Árvore de sufixos}
-\importsource{st.h}
+\lstinputlisting{fontes/st.h}
 
 \subsection{Aho-Corasick}
-\importsource{acs.h}
+\lstinputlisting{fontes/acs.h}
 
 \subsection{Autômato de Sufixo}
-\importsource{saut.h}
+\lstinputlisting{fontes/saut.h}
 
 \subsection{Algoritmo Z}
 $z[i]$ é o tamanho da maior string que é ao mesmo tempo, um prefixo de $s$ e um prefixo do sufixo de $s$ começando em $i$.
 
-\importsource{z.h}
+\lstinputlisting{fontes/z.h}
 
 \clearpage
 \subsection{KMP}
@@ -591,27 +653,27 @@ $z[i]$ é o tamanho da maior string que é ao mesmo tempo, um prefixo de $s$ e u
   Busca $\bigO(n + m)$ \\
   \hline
 \end{tabular}
-\importsource{kmp.h}
+\lstinputlisting{fontes/kmp.h}
 
 \subsection{Autômato KMP}
-\importsource{kmp-automaton.h}
+\lstinputlisting{fontes/kmp-automaton.h}
 
 \subsection{Rabin-Karp}
-\importsource{rabinkarp.h}
+\lstinputlisting{fontes/rabinkarp.h}
 
 \subsection{Vetor de sufixos}
-\importsource{sa.h}
+\lstinputlisting{fontes/sa.h}
 
 \subsection{Vetor de sufixos radix}
-\importsource{sar.h}
+\lstinputlisting{fontes/sar.h}
 
 \subsection{Trie}
-\importsource{trie.h}
+\lstinputlisting{fontes/trie.h}
 
 \section{Geometria}
 
 \subsection{Pontos}
-\importsource{point.h}
+\lstinputlisting{fontes/point.h}
 
 \subsection{Fecho convexo com corrente monotônica}
 \begin{tabular}{l}
@@ -619,7 +681,7 @@ $z[i]$ é o tamanho da maior string que é ao mesmo tempo, um prefixo de $s$ e u
   $\bigO(n \lg n)$ \\
   \hline
 \end{tabular}
-\importsource{monotone.h}
+\lstinputlisting{fontes/monotone.h}
 
 \subsection{Fecho convexo de Graham}
 \begin{tabular}{l}
@@ -627,102 +689,102 @@ $z[i]$ é o tamanho da maior string que é ao mesmo tempo, um prefixo de $s$ e u
   $\bigO(n \lg n)$ \\
   \hline
 \end{tabular}
-\importsource{graham.h}
+\lstinputlisting{fontes/graham.h}
 
 \subsection{Ponto dentro do polígono?}
-\importsource{isinsidepoly.h}
+\lstinputlisting{fontes/isinsidepoly.h}
 
 \subsection{Ponto dentro do polígono convexo?}
-\importsource{isinsidepolyconvex.h}
+\lstinputlisting{fontes/isinsidepolyconvex.h}
 
 \subsection{Área de polígono}
-\importsource{polyarea.h}
+\lstinputlisting{fontes/polyarea.h}
 
 \subsection{Pontos inteiros no polígono}
 \begin{align*}
 A = i + b/2 - 1
 \end{align*}
-\importsource{latticepoints.h}
+\lstinputlisting{fontes/latticepoints.h}
 
 \subsection{Segmento}
-\importsource{seg.h}
+\lstinputlisting{fontes/seg.h}
 
 \subsection{Ponto e segmento}
-\importsource{pointseg.h}
+\lstinputlisting{fontes/pointseg.h}
 
 \subsection{Interseção de retângulos}
-\importsource{rectangle-intersection.h}
+\lstinputlisting{fontes/rectangle-intersection.h}
 
 \subsection{Segmento e segmento}
-\importsource{segseg.h}
+\lstinputlisting{fontes/segseg.h}
 
 \subsection{Árvore KD}
-\importsource{kd-tree.h}
+\lstinputlisting{fontes/kd-tree.h}
 
 \subsection{Varredura angular}
-\importsource{angular-sweep.h}
+\lstinputlisting{fontes/angular-sweep.h}
 
 \section{Algoritmos}
 
 \subsection{Agendamento ótimo de tarefas}
-\importsource{jobs.h}
+\lstinputlisting{fontes/jobs.h}
 
 \subsection{Ordenação por fusão}
-\importsource{mergesort.h}
+\lstinputlisting{fontes/mergesort.h}
 
 \subsection{Subconjuntos de tamanho $K$}
-\importsource{combination.h}
+\lstinputlisting{fontes/combination.h}
 
 \subsection{Algoritmo de Mo}
-\importsource{mo.h}
+\lstinputlisting{fontes/mo.h}
 
 \subsection{Meet in the middle}
-\importsource{meet.h}
+\lstinputlisting{fontes/meet.h}
 
 \subsection{Maior subvetor com soma $s$}
-\importsource{subsum.h}
+\lstinputlisting{fontes/subsum.h}
 
 \subsection{Maior subsequência crescente}
-\importsource{lis.h}
+\lstinputlisting{fontes/lis.h}
 
 \subsection{Maior subsequência crescente rápido}
-\importsource{lisnlgn.h}
+\lstinputlisting{fontes/lisnlgn.h}
 
 \subsection{PD de perfil quebrado}
-\importsource{parquet.h}
+\lstinputlisting{fontes/parquet.h}
 
 \subsection{Busca binária}
-\importsource{bs.h}
+\lstinputlisting{fontes/bs.h}
 
 \subsection{Máscaras de bit e operações em bit}
-\importsource{bitmask.h}
+\lstinputlisting{fontes/bitmask.h}
 
 \subsection{Busca binária diferentona}
-\importsource{binarystep.h}
+\lstinputlisting{fontes/binarystep.h}
 
 \section{Problemas}
 \subsection{Rainhas no tabuleiro}
-\importsource{queens.h}
+\lstinputlisting{fontes/queens.h}
 
 \subsection{Moda usando algoritmo de Mo}
-\importsource{mode.h}
+\lstinputlisting{fontes/mode.h}
 
 \subsection{Inversões usando algoritmo de Mo}
-\importsource{inversionmo.h}
+\lstinputlisting{fontes/inversionmo.h}
 
 \subsection{Remoção de valores com lista}
-\importsource{remove.h}
+\lstinputlisting{fontes/remove.h}
 
 \subsection{Remoção de valores com deque}
-\importsource{removedeque.h}
+\lstinputlisting{fontes/removedeque.h}
 
 \subsection{Desembarcadouro}
-\importsource{desembarcadouro.h}
+\lstinputlisting{fontes/desembarcadouro.h}
 
 \subsection{Distância de Edição}
-\importsource{edit-distance.h}
+\lstinputlisting{fontes/edit-distance.h}
 
-\subsection{Frequência de frequêncies}
-\importsource{freq-freq.h}
+\subsection{Frequência de frequências}
+\lstinputlisting{fontes/freq-freq.h}
 
 \end{document}
diff --git a/fontes/small-to-large.cpp b/fontes/small-to-large.h
similarity index 100%
rename from fontes/small-to-large.cpp
rename to fontes/small-to-large.h