|  | LCIPC Summer '99 Rules | |
|
Problems | Query Board | LCIPC Main
Jon McAlister: Problem Writer, Test Data, Grading, and now Webmaster

The LCIPC Contest is a computer programming contest open toall pre-college students throughout the world who have access tothe internet. Four problems will be presented for all students,and solutions will be submitted to lchs3@hotmail.com asdescribed below. This is an individual contest! There will alsobe a challenge round scored independent of the four contesttasks.

Problems will be posted to the http://web.wt.net/~photon/lchs/us.htmweb page on August 1, 1999. All solutions are due by August 7,1999 at midnight Central Standard Time (-600 GMT). Late solutionswill not be accepted.

Students can work on problem solutions anywherethey wish, including school and home.

Contestants will be required to return solutions in either C++ orPascal. Programs will be run on either Borland Turbo C++ 3.0 orBorland Turbo Pascal 7.0. Choosing a non-Borland Pascal compilerwill potentially cause a solution to not compile on the judges'machines. After you have completed the contest, feel free to takeyour final solution to a Borland Pascal equipped machine toensure it will work. Do not charge this `repair' time againstyour coding time limit. Choosing a non-Borland C/C++ compiler hasa greater chance of working out okay: make sure you use nolibrary functions other than those provided by the followingheader files (i.e., don't #include anything but these files --not all of which are usually needed, of course):
| assert.h | io.h | mem.h | string.h |
| ctype.h | iostream.h | stdio.h | values.h |
| fstream.h | math.h | stdlib.h | iomanip.h |
If you use an ANSI compiler and use (at most) only these headers,your program should compile fine under our compilers. Rememberthat we are running the judging under MS-DOS and are thus subjectto its memory requirements.


- Consultation with people other than the contest director is prohibited.
- Do not work in a team environment.
- Submit questions to lchs3@hotmail.com who will try to fathom an appropriate answer for you (and post it to the site page, if appropriate). Many times, the reply will often be a suggestion to read the problem more carefully.
- Any amount of consultation with written materials (such as programming books) is allowed (but this doesn't mean you can ask someone to write an article on how to solve a problem, of course). Do not ask someone where to look up an answer though, that counts as "consultation with people".
- Spend no more than three sessions solving problems (i.e., if you work one hour in a session, take a one hour break, and then work another hour, you have worked for two sessions).
- Spend no more than a total of five hours solving problems.
- Submit source code for the problems to the contest coordinators via e-mail to lchs3@hotmail.com (see below for format).
- Solutions will be judged for correctness by running them against several (usually 5-15) different sets of input data. Points are accrued for correct solutions. Some datasets for a problem will be worth more points than others. Solutions to some problems will be worth more points. Judging will be performed expeditiously but could take two weeks to complete.
- Unless otherwise stated, your program must run no longer than 5 seconds for any test case on the judge's computer (approximately 366 MHz Intel Celeron).
- It is NOT guaranteed that all possible legal datasets will be solvable within the time limit.
- The judges reserve the right to increase time limits during grading.
- Judges will not test all datasets against a program that crashes the computer for initial datasets.
- Decision of the judges is final.
- Do not cheat; it's no fun for anyone.
- Do not use inline assembler statements.
- Do not submit programs that use data files that aren't supplied by the contest coordinators.
- Do not use "temporary" data files.
- Keep in mind that this is neither a "tricky input" nor a "tricky output" contest, in general. Input and output formats are straightforward, though the input values may cause your program difficulty.
- Problems are intended to be algorithmic in nature, meaning clever algorithms and/or data structures may be needed to score full marks.
- All problems are intended to be straightforward (yet challenging); no problems are intended to have "hidden tricks" in them.
- Nevertheless, legal but complex datasets are fair game for testing.
- If you find a problem with wording or an ambiguity, document your assumptions carefully and move on. Send e-mail; we'll reply if we can.
- Any violation of the above rules will result in a penalty or disqualification.
- For the challenge round, competitors will have 3 hours with which to solve a difficult task with a approximate answer. Time used for this round is to be considered independent of the time required for the other competition tasks. This is basically an independent contest and is not mandatory.

- We will be using automated grading procedures.
- The registration information at the front of the solution should be in precisely the same format as requested below. Otherwise, your solution could be lost. Be sure that each program has the same registration information.
- Programs that consist of essentially nothing more than print statements will not be graded.
- Special thanks to Rob Kolstad for providing the contest rules and Russ Cox's for providing files to catalyze the grading procedures. Special thanks again to Rob for his advice about the contest format and the problem tasks.
- Special thanks to Jon McAlister for providing the problems and test data. Jon will be attending Stanford University in the fall.
- During the contest, feel free to send questions (one per e-mail please!) to lchs3@hotmail.com.
- All programs read their input from a specified file; do not specify a complete path name in your "open" statement, just the name of the specified file.
- All programs write their output to a specified file; do not specify a path name in your "open" statement.
- Remember that all your output should be written to the specified output file. Do not clear the screen or print anything to the screen.
- Note that test data run by the judges will almost surely be more challenging than the test data supplied with each problem.
- Don't use any of C++'s Standard Template Library (STL) or any classes other than those provided by iostream.h and fstream.h. We're using a very old C++ compiler: it probably doesn't know about the special classes you want to use.
- If your source code does not compile without changes, your program will not be graded. The only exception to this is: we will fix source codes mangled by mail agents' treatment of line wraps and the like.
- Don't use C's "bool" type. That is specific to Borland C/C++ 5.0. If you can compile your code under ANSI C, you're probably safe.
- The scorer will not compile with any command-line compiler options. You must set any relevant options using the appropriate method in the source file, as illustrated above. Note that not all command-line options are compiler options. In particular, don't bother specifying "-P" or "-P-" on the "#pragma option" line, as the compiler will not accept it.

- No special registration form is required. Each problem solution has, within its submission, an entry form (see below). You enter when you send in your solution.
- Submit your answers to problems via e-mail to lchs3@hotmail.com. Please send precisely one problem's solution program per e-mail (i.e., send three separate e-mails for three problems, etc.). If you submit more than one solution for a single problem, only the last one received will be graded. That means if you find a bug after your submission, you can re-submit. This is dangerous ground, of course, since your newer program might, in fact, be worse than the previous one.
- Each solution e-mail submission should have the following format for the e-mail message. SEND ASCII MESSAGES. DO NOT USE ATTACHMENTS or MIME ENCODING, fancy mail options, or anything else.
- In the subject line of the email, put your name and problem number please.
- Submissions must have special comments separating sections of the mail; you must insert the three '#'s and the word that follows them. These comment lines are surrounded by a single blank line. Here is the exact format for submitting solutions.
### Program
... [any compiler options you use] ...
... [header comments -- see below for format] ...
... [text of program in C or Pascal] ...
### End
- If you will be competing at the IOI in Turkey this October, please includethe line "IOI Competitor 1999" after listing the country.

- Put comments precisely like the ones below at the front of each and every solution (after the `### Program' marker).
- Be sure your email address and name are always spelled precisely the same way. We use the combination of email address and name as a unique identifier for you.
- Data after `### End' are ignored (e.g., signatures)
- Do not insert any extra blanks or blank lines.
- Put compiler directives just before the header (as shown below) but nevertheless after the `### Program' marker. Choose your directives based on your own experience.
Here is the C/C++ header example:
### Program
#pragma option -O2
/*
Problem: 1
Name: Ben Sisko (First name then Last name)
Email: ben.sisko@mash.us
School: Computing Creek High School
Grade: 12
Age: 17
City, State: Bajor, ME
Country: USA (three letters: CAN, COL, DEU, ROM, USA, etc.)
*/
- If you live somewhere that has a city but no state, please omit the state. If your school system uses a notation like "Form 6" for older students, please pro-rate your "Grade" by calculating the equivalent USA school grade. In the USA: grade 10 students begin around age 15; grade 11 students begin around age 16; grade 12 students begin around age 17.
Here is the PASCAL header example:
### Program
{$G+,N+}
{
Problem: 1
Name: Jean Picard (First name then Last name)
Email: captain.picard@starfleet.ufp
School: Computing Creek High School
Grade: 12
Age: 17
City, State: LaBarre
Country: FRA (three letters: CAN, COL, DEU, ROM, USA, etc.)
}
- If you are submitting a solution to one of the four competition tasks, please put the number of the problem in the line starting with "Problem:"; however, if you are submitting a solution to the challenge task, please use the following line: "Problem: C" as the C denotes challenge. Failure to do this could result in a failure of your solution to be graded.
Problems | Query Board | IPC Main