F.A.Q. and Misc. Information --- MPR 2000 at URI
Directions to the MPR site

The University of Rhode Island web site provides good directions to the Kingston campus.

Once you are on the campus, you should have no trouble finding Tyler Hall on the campus map.

At Tyler Hall, signs will provide directions to the meeting room.

Frequently Asked Questions


0. How are the programs graded?

There are no points for style: Only the result matters. The automatic grader takes your source file, compiles it, and executes it against 4 different input files. Each time the output is compared with that produced by the reference solution, which is provided by the person who wrote the problem. You only mark points if your output matches the reference output (no partial credit). It is possible to mark points on some input files and get zero on another, just because they test for different things.


1. Do the problems require knowledge of a particular (graphical or other) API?

No. All problems are exclusively file-based (the input and the output are files) and are not interactive.


2. Is there a good way to prepare for the MPR?

Obviously, taking a look at problems from the previous editions wouldn't hurt. One thing that I could recommand, because it has caused plenty of trouble (and heartbreaks) to many teams in previous editions, is to make sure that you really master the file input/output formatting options of your language of choice. Each year there are teams that spend an absurd amount of time just getting their programs to parse correctly the input files. In the heartbraking category, the extra space at the end of output lines figures prominently.


3. Can I use the [insert name] library?

Most likely the answer is No. For example, no, you should not try to use the mathematical routines of OpenGL, Direct3D, or MFC in your code. You cannot expect any non-standard library (I will check and post later a separate note for STL) to be available on the computer that will be running the automatic corrector (more accurately, output checker), or for the project templates that the corrector will be using. Basically, single-file (no separate header file) ANSI-strict C or C++, and Java JDK 1.2 are the only safe choices.

In particular, Micro$oft's "enhancements" of Java and C++ are evil. Using Windows libraries, in particular including the sinister windows.h header, besides staining your soul and pushing you one more step to the Dark Side, is an invitation for problems with the automatic grader.


4. Should a team write all its programs using the same language?

No. Members of a team can use different languages, but a team can only submit one solution for a given problem.


5. What if I find a bug in a solution that I just submitted?

Tough luck! Once your solution has been deposited in the drop box, we will not accept a new submission from your team for that problem. Make sure that everything (in particular, names of input and output files) is correct before submitting your solution.


6. What are the most common dumb mistakes?

Here are a few:

  • Giving incorrect names to solution programs (incorrect team number is the most common error). We will try to challenge the "production of a better idiot" evolutionary process by making the drop-box system secure (or "idiot-proof") this year;

  • Expecting incorrect name of input files and/or giving incorrect names to output files;

  • Printing results to the console (DOS window) instead of writing them to a file;

  • Statically allocating a "large" array ("it should be big enough") instead of doing a dynamic allocation once the data have been read from the input file;

  • (in C or C++) dynamically allocating an array that is "one too short";

  • Adding one extra space at the end of output lines;

  • Not checking for limit cases: If the problem says that the input string has at least one character, but not more than 1000," you can bet that there will be input sets testing the lower and upper limits;

  • Extrapolating from the data example provided. Trust the text of the problem more than the examples, in particular regarding input data formats and values. If the problem states "words are separated by one or more spaces," it means that there could be 2 or 3 or more spaces between words, even if all the examples only show one space. Don't expect object indexes (node indexes in a network) to start from 1, unless the problem explicitely states so, etc.

7. What are the best team strategies?

There are really two aspects to team strategy. The first one concerns the sharing of work/responsibilities in the team. The second concerns the choice of problems that the tem will try to solve. On the first aspect, all sorts of combinations work. Some teams have specialized members (algorithms, coding, debugging), some work as 2 sub-teams of 2, other as 4 independent programmers, each working on a different problem (in this case, it is often a good idea to present one's algorithm to another member of the team to get feedback/criticisms before begining to code. One method that does not work well is three or four programmer working together on the same problem.

Some teams (all top teams) prefer to solve only the "big" problems (those that bring more points), possibly with a time bonus. It is always good for the moral of the team, though, to make some points on a simple problem or two. For the middle-rank teams, there is no "best strategy". All combinations have been encountered.

Also, do not forget that there is only one computer per team! Definitely define rules within your team for access time to the computer. That will avoid conflicts and frustrations late in the day where a team member monopolizes the computer ("Just five more minutes! It's almost working!") while the other cannot type or check their solution.


8. Can I have a look at problems from previous editions?

Sure, but since Bishop's University (Quebec anglos) only joined the Race in 1999, all editions prior to that year only had french versions of the problems:


Organizing Team at the University of Rhode Island : jean-yves hervé (401) 874-4400

Julie Goodside (401) 874-5864

Lorraine Bérubé (401) 874-2701


Last modified Saturday, October 20, 2001 13:21

»