% Rules for Duke Internet Programming Contest
% latex format
\documentstyle[11pt]{article}

% Margins
\sloppy
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9in}
\setlength{\topmargin}{-0.5in}
\setlength{\oddsidemargin}{0pt}
\setlength{\evensidemargin}{0pt}

\begin{document}

\title{Contest Rules}
\author{Duke Internet Programming Contest}
\date{November 17, 1992}
\maketitle

\section{Concept}
The idea of this contest is to enable many people to participate in a
programming contest. We hope it will be fun for all involved, as well
as boosting interest in the programming teams involved in the ACM
programming contests. This contest is very informal, and we hope that
the contestants will compete in
this spirit. The success of the contest depends on the integrity of
the contestants.

\section{Teams}
Teams consist of {\em up to\/} four people. There are three classes of
teams:
\begin{description}
\item [I] All undergraduates or high school students.
\item [II] Mixed:
\begin{itemize}
\item At least two undergraduates
\item No member with more than two years in grad school
\item No member with a Ph.D\@. degree.
\end{itemize}
\item [III] Open (professors, upper-level grad students).
\item [IV] Dennis Ritchie, Don Knuth, etc.\footnote{Just kidding.}
\end{description}

\section{Contest specifics}
\begin{enumerate}
\item We will provide a set of problems to be solved. There will be
3--10 problems in the set. These will be provided to a local
contest administrator ({\tt marc@mit.edu}).
\item The contest lasts three hours.
 The judges have the power to extend the contest if necessary.  
\item Each team may use only one terminal (or workstation). You may
use any type of computer you wish, but you must use our software to
submit your solutions. 
\item We will judge C programs using either the standard Sun {\tt cc}
compiler or Gnu C ({\tt gcc}), Pascal programs using the Sun {\tt
pc} compiler, and Scheme programs using the Scheme$\rightarrow$C {\tt scc}
compiler.  The {\tt scc} compiler follows the {\em Revised$^3$ Report on the
Algorithmic Language Scheme\/},  with minor constraints and some
additions.  Basically, you need to specify the ``main'' procedure in
your Scheme program with a module specification: {\tt (module p0
(main do-p0))} would declare that the function {\tt do-p0} is the
main function in the module {\tt p0}.  The module specification
should be the first line of your Scheme source code.
\item You may use any editor, debugger, and windowing system.
If your program does not compile or run on our SPARCstation running SunOS
4.1.1b, that is unfortunate for you. Stick to the standard C library
(similarly for Pascal and Scheme, stick to the standards).
\item No arguments will be passed to the program at run time.
\item You may work on the problems in any order, and submit them in any order.
\item You may use any books and other materials you wish, except electronic
copies of pre-existing code.  You may not use any code that is
on-line. This rule means you must type in all code you hand in.
\item You may test problems on your computer as often as you wish.
\item To receive credit for a problem solution, you must turn it in for 
judging. The mechanism is described below. The response will be one of 
the following:
 \begin{itemize}
 \item Correct
 \item Incorrect Output
 \item Incorrect Output Format
 \item Incomplete Output (e.g., no output for some test cases)
 \item Compiler Error
 \item Runtime Error
 \item Runtime Limit Exceeded (1 minute wall-clock time on the
       judges' machine; this should not be an issue if your program is
       coded correctly).
 \item Submission Botch (something went wrong with how you submitted
       the program to us).
 \end{itemize}
\item If a contestant believes that a problem is stated ambiguously, 
and requires clarification, he may submit a question to the judges
(mechanism described below).  The question and its answer may be
provided to all contestants if it seems relevant.  A response to the
question is guaranteed, although the judges may refuse to answer any
question.
\item No discussion is permitted with people outside your team.
\item All input is read from {\tt stdin}, and all judged output
is to be written to {\tt stdout}.  Output to {\tt stderr} will be
ignored.
\item You are responsible for backing up your own code, and for making
your own printed listings.
\item  Use only system include files (e.g., {\tt stdio.h}), as
necessary. The program should be self-contained: do not submit
multiple-file solutions. The math library will be linked with your
program (i.e., {\tt -lm} is specified). 
\item \label{resubmit} After submitting a judged run, you must wait
for the response before {\em re\/}submitting the same problem. A
severe penalty applies if you break this rule. You may, however,
submit solutions to  other problems while waiting for a response from
the judges.
\item Judges may disqualify any team not competing in the spirit of the 
contest. Examples of unfair practices are stealing files, impeding others, 
degrading performance, unfair use of software tools, adjusting system
clocks, etc. 
\item The decision of the judges is final.
\item The judges are not responsible for network or system failures or
delays. 
\end{enumerate}

\section{Mechanisms}
The mechanism for submitting judged runs and clarifications uses
electronic mail.  A set of programs are installed on your system that
take the name of your program file, problem number, and team number,
and sends the program to the judges.  Your response is returned through
e-mail, without code.  A similar program sends a clarification
request.

Clarifications and periodic scores are distributed by e-mail.

\section{Scoring}
\begin{itemize}
\item No prizes are awarded.
\item The team that has had the most problems judged correct at the end
of the contest will be declared the winner. There are separate
rankings for each category, as well as overall.  If more than one team
has solved the same number of problems, the winner is the one with the
fewest penalty points.
\begin{enumerate} 
\item Penalty points are assessed for solved problems only.  
\begin{enumerate} 
\item One penalty point is assessed for each minute from the beginning
of the contest until the problem was solved.  
\item The time of solution is defined to be the time of submission,
according to your local computer time. 
\item Twenty penalty points are assessed for each judged run. 
\item Fifty penalty points are assessed for breaking rule~\ref{resubmit}.
\end{enumerate} 
\item No penalty points are assessed for any problem
which was not ultimately solved.  
\item The contest coordinators
reserve the right to adjust penalty points to allow for unforeseen
circumstances.
\end{enumerate}
\item The score is posted every half hour through e-mail. The
scores may be withheld near the end of the contest to keep the final
results a surprise.
\item The final results will be mailed out (we hope) within a
half-hour after the contest ends.
\end{itemize}
\end{document}
