University of Maryland High School Programming Contest Rules and Information ---------------- Contest Specifics ---------------- 1.Each team will use ONE computer --- other computers in the labs must stay powered down. No computer equipment may be brought into the contest area. 2.Teams are allowed to bring a reasonable number of computer books and/or notebooks into the contest area for use during the contest. Teams are NOT ALLOWED to bring a disk, software, or machine-readable software into the contest area. 3.Teams will not have their own printer. A network printer will be accessible. 4.No food or drink in the labs. There will be lunch before the contest, and refreshments supplied afterwords. 5.Any questions to the judges should be submitted in writing using the clarification forms provided. Fill out the form and give it to a runner. Each question will be acknowledged, although the judges may refuse to answer any question. The question and its answer may be provided to all contestants if it seems relevant. 6.The only discussion permitted is within a team and with the contest staff. Teams are not allowed to use telephones, cell phones, pagers, or other wireless devices to contact or talk to anyone else during the contest. 7.Teams are allowed to use calculators (hand-held or the built-in Windows calculator). Teams are not allowed to use non-contest software on their computers. Teams are not allowed to use web browsers, telnet, ssh, ftp, or other networking software to obtain help on their contest problems. 8.You may work on the problems in any order, and submit them in any order. 9.Your programs must not do any file input or output. All contest input will come from stdin -- that is, the keyboard, and all output must go to stdout -- that is, to the console. 10.The C++ documentation is available on-line through the Microsoft Visual C++ help system. 11.Your programs should not utilize any special Microsoft Visual C++ language features or templates. These are not needed, and their use may result in your submission being judged incorrect. 12.You are allowed to use APCS classes and templates. You are not allowed to make any modifications to the APCS files. You can use the APCS classes by adding the appropriate #include directives. 13.You need consider the efficiency of your algorithms to make sure it will take less than two minutes running time. For some of the problems there exist solutions that might work, but are so inefficient that they will not finish in the allowed time. 14.To receive credit for a problem solution, you must turn it in for judging, using the command described below. The response will be one of the following: Correct Incorrect Output Incorrect Output Format Incomplete Output Failed Test Case Compiler Error Run-time Error Run Time Limit Exceeded (2 minutes on the judges machines -- this should not be an issue unless you've coded an inefficient solution) 15.After submitting a judged run, you may resubmit the same problem before getting a reply from the judges, but this will invalidate the previous submission, which will then be counted as an incorrect submission. 16.The judges' decision is FINAL. ---------------- Scoring ---------------- The team that has had the most problems judged correct at the end of the contest will be declared the winner. If more than one team has solved the same number of problems, the winner is the one with the fewest penalty points. Penalty points are assessed for solved problems only. Each problem accumulates one penalty point for each minute from the beginning of the contest until the time of a correct submission. Twenty penalty points are assessed for each incorrect submission. The contest director reserves the right to adjust penalty points to allow for unforeseen circumstances. ---------------- Web Interface ---------------- You will be using a web-based interface to submit your problem solutions, check solution status and scores. To access the interface, bring up your web browser. home The ``home" button should bring you to the UMCP programming contest web interface. contestant You need to click on the appropriate link to log in as a contestant. Your team name and password will be supplied as part of your documentation. submit To submit a solution, click on the ``Submit'' hyperlink in the top left corner of the interface. Now select the problem number from the ``Submit Problem:" box. Then enter the name of your C++ program file (prob.cpp) in the ``Program Source Code" box. You may also hit the ``Browse" button to find your program. When you are ready, click on the ``Submit Program" button. It then sends your file over the network to the judges. status To get status of your submissions, click on the ``Status'' hyperlink in the top left corner of the interface. This program will show the status of all problems you've submitted to the judges. But please be patient! You may use the ``Reload" button to update the results. Responses to your submissions may contain comments. You can see judges comments by clicking on the ``Message Waiting!" hyperlink scores To see the current scores of all the teams, click on the ``Scores'' hyperlink in the top left corner of the interface. This will show the current scores of all the teams. The ScoreBoard will be updated every few minutes. The scores hyperlink will be disabled during the last 45 minutes of the contest. ------------------------ Contest Commands & Files ------------------------ c:\contest All contest files c:\contest\bin A number of contest scripts & executables c:\contest\bin\shell.cmd A DOS shell that sets environmental variables You should run all your scripts in this shell. c:\contest\bin\mycc.cmd A script to compile your C++ code c:\contest\bin\try.cmd A script to test your submissions ------ c:\contest\code C++ code for problems c:\contest\code\PROB0 C++ code for problem 0 ... 8 c:\contest\code\PROB1 ... c:\contest\code\PROB8 c:\contest\code\PROB*\prob.cpp Skeleton solution code c:\contest\code\PROB*\prob.dsw C++ project file for MS Visual C++ ------ c:\contest\problems Test data for problems c:\contest\problems\0 Test data for problem 0 ... 8 ... c:\contest\problems\8 c:\contest\problems\*\*.in Sample test input data c:\contest\problems\*\*.out Correct test output data msdev The Visual C++ programming environment. You should do all your editing and testing within this environment. We have set up a number of project folders for you in c:\contest\code\PROB*. You should only need to modify the `prob.cpp' file in each project directory. To enter the Visual C++ environment, double click on the `prob.dsw' file in each folder. You can compile and execute your program using options from the "Build" menu. try The contest test program. Try takes the problem number (and optionally your C++ source code file) as parameters. It then compiles your program and runs it on the test data that was given with the problem. This lets you try your program before submitting it for judging. For example: ``try 1" The try command will 1) compile the C++ source code (prob.cpp), 2) execute it against test data in c:\contest\problems\*, 3) put the output in *.log files, 4) compare the output with correct input using "diff", and 5) report on results. Remember the test data we supply using 'try' is a subset of the actual test data we will use to judge the problem (i.e. just because a program passes try doesn't mean it will be judged correct when submitted). You should execute "try " in the DOS shell created by shell.cmd in the c:\contest\code\PROB* directory containing your solution.