\documentclass[10pt]{article}

%% Escrevendo em português
\usepackage[brazil]{babel}
\usepackage[latin1]{inputenc}

\usepackage[colorlinks,backref]{hyperref} 

%% Tamanho da página
\setlength{\textwidth}{17cm}
\setlength{\textheight}{24cm}

%% Parágrafo
\setlength{\parindent}{5mm}
\setlength{\parskip}{1mm}

%% Empurra para cá empurra para lá
\evensidemargin -0.3cm
\oddsidemargin -0.3cm
\topmargin -0.7in

\newcommand{\ymoldura}[1]{{\noindent\fbox{\parbox[t]{10cm}{ #1 }} \vspace*{.5cm}\\}}
\newcommand{\moldura}[1]{{\noindent\fbox{\parbox[t]{15.75cm}{ #1 }} \vspace*{.5cm}\\}}
\newcommand{\dmoldura}[1]{{\noindent\fbox{\fbox{\parbox[t]{11.0cm}{ #1 }}}\vspace*{.5cm}}}

\def\nl {\medskip \noindent} %\smallskip\noindent}

\pagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\hfill {\small Departamento de Ciência da Computação -- IME-USP}


\begin{center}
  \textbf{\large MAC 115 -- Introdução à Ciência da Computação}

  \smallskip

  \textsc{Instituto de Física - Primeiro Semestre de 2004}
\end{center}

\noindent
Primeiro Exercício-Programa (EP1)\hfill 
Entregue até 26/4/2004, no pelo
\href{http://panda2.arca.ime.usp.br/panda/index.html}{Panda}. 

\bigskip
\bigskip

\begin{center}
\dmoldura{
\centerline {\phantom{a} }
\centerline{\bf {\Large {\sc ~  O Problema de Collatz ($3x+1$) ~ }}}
\centerline{\phantom{a}}
}
\end{center}

%\vspace{2ex}

\noindent  
Considere o seguinte algoritmo que gera uma seqüência de inteiros.  Comece com
um inteiro positivo~$n$.  Se~$n$ é par, divida por~$2$.  Se~$n$ é ímpar,
multiplique por~$3$ e some~$1$.  Repita este processo com o novo valor de~$n$,
terminando quando atingimos~$n=1$.  Por exemplo, a seguinte seqüência de
números será gerada para o valor inicial~$n=22$:
\begin{center}
  22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
\end{center}
É uma conjectura bem conhecida que este algoritmo de fato termina para
todo~$n$ positivo.  Sabe-se que isto é verdade para valores de~$n$
até~$1.000.000$, mas não se conhece uma prova para valores arbitrários de~$n$.
(Veja, por exemplo,
\href{http://mathworld.wolfram.com/CollatzProblem.html}{%
  \texttt{http://mathworld.wolfram.com/CollatzProblem.html}}.)  

Para cada~$n$, chamemos de \textit{vida de~$n$} o número de números na
seqüência até atingirmos~$1$, incluindo o~$1$ final.  Por exemplo, a vida
de~$n=22$ é~$16$ (veja acima).  Escreva um programa que recebe uma lista de
pares de inteiros positivos~$i$ e~$j$ e determina a vida `mais longa' entre os
inteiros de~$i$ a~$j$, incluindo ambos~$i$ e~$j$.

\subsection*{Entrada}
A entrada será uma lista dos pares~$i$ e~$j$, com um par por linha.  Todos os
inteiros serão entre~$0$ e~$1.000.000$.

\subsection*{Saída}
Para cada par de inteiros~$i$ e~$j$, a saída deve ser o par~$i$ e~$j$, seguido
na mesma linha pelo máximo da vida dos inteiros~$n$ com~$i\leq n\leq j$.  

\subsection*{Exemplo}

\subsubsection*{Entrada}
\begin{verbatim}
1 10
100 200
201 210
900 1000
\end{verbatim}

\subsubsection*{Saída}
\begin{verbatim}
1 10 20
100 200 125
201 210 89
900 1000 174
\end{verbatim}

\newpage

\bigskip
\begin{center}
  \underline{\Large \sc Observações Importantes sobre os Exercícios-Programas}
\end{center}

\smallskip

%\footnotesize

Todos os exercícios-programas devem ter o seguinte cabeçalho:

\begin{verbatim}
           /********************************************************/
           /* Fulano de Tal                                        */
           /* Exercicio-Programa xx                                */
           /* Curso yy  - Turma zz  -- Professor:  Ciclano de Tal  */
           /* Computador: .....                                    */
           /* Compilador: .....                                    */
           /********************************************************/
\end{verbatim}

\begin{enumerate}

\item O exercício-programa é \textbf{estritamente individual}. Exercícios
  copiados (com ou sem eventuais disfarces) receberão\ nota ZERO.


\item \textbf{Exercícios atrasados não serão aceitos.}

 \item  Exerc\'\i cios com erros de sintaxe (ou seja, erros de compilação)
 receberão nota ZERO.


\item  É \textbf{muito importante} que seu programa tenha comentários e
   esteja bem indentado, ou seja,
  digitado de maneira a ressaltar a estrutura de subordinação dos comandos
  do programa (conforme visto em aula).  A avaliação dos
  exercícios-programas levará isto em conta. 
  
\item Cada programa deve ser executado tantas vezes quantas forem necessárias
  para testar todos os casos possíveis para as entradas.  Você pode dizer no
  seu programa (em comentários), quais dados você usou para testar seu
  programa.  \textit{A escolha desses dados também influirá na sua nota.}
  
\item  Guarde com voc\^e at\'e o final do semestre, em seus
  disquetes, os arquivos de seus programas, pois eles podem ser
  solicitados pelo professor caso surja alguma d\'uvida. 

\item  Entregue o seu programa pelo sistema
  \href{http://panda2.arca.ime.usp.br/panda/index.html}{Panda}. 

\end{enumerate}


\end{document}


