\usepackage{ifthen} \newtheorem{definition}{Definition}[chapter] \newtheorem{theorem}{Theorem}[chapter] \newtheorem{lemma}{Lemma}[chapter] \newtheorem{observation}{observation}[chapter] % #1 (optional): Fixed parameters of the problem % #2: Name of query problem % #3: The structure to preprocess % #4: Queries to handle \newcommand{\queryproblem}[4][]{ \textsc{#2} \\ \ifthenelse{\equal{#1}{}}{}{\textbf{Fixed:} #1 \\} \textbf{Given:} #3 \\ \textbf{Queries:} #4 } \newcommand{\qptime}[2]{$\langle$#1, #2$\rangle$} \newcommand{\qpoptimal}{\qptime{$O(n)$}{$O(1)$}} \newcommand{\definedterm}[1]{\emph{#1}} \newcommand{\data}[1]{\textsf{#1}} \newcommand{\infixtable}{\data{in}} \newcommand{\posttable}{\data{post}} \newcommand{\prefixtable}{\data{pre}} \newcommand{\indextable}{\data{index}} \newcommand{\componenttable}{\data{component}} \newcommand{\breaktable}{\data{break}} \newcommand{\mathlca}{\mathit{LCA}}