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