of 7

IEEEXTREME PROGRAMMING COMPETITION 3.0. Pre-Contest Booklet. IEEEXtreme Org Team 10/21/ PDF

18 views7 pages

Download

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
IEEEXTREME PROGRAMMING COMPETITION 3.0 Pre-Contest Booklet IEEEXtreme Org Team 10/21/2009 What is Mooshak? Mooshak is a web-based system for managing programming contests. It was developed at the University
IEEEXTREME PROGRAMMING COMPETITION 3.0 Pre-Contest Booklet IEEEXtreme Org Team 10/21/2009 What is Mooshak? Mooshak is a web-based system for managing programming contests. It was developed at the University of Porto, by José Paulo Leal, and is currently used in many programming contests, in many countries. Using Mooshak, you submit the programs that implement your solutions to the contest problems. You submit those programs to the contest server, for immediate evaluation and grading. Each submission consists of a single file. For submitting your solution to a problem, you first select the problem, by using a radio button, then select the file that contains the source code of your solution, by browsing your directories, and finally you hit the submit button. On the server, Mooshak compiles your source file and, if there are no compilation errors, runs the executable file that the compilation produced, once for each test case that has been set for that problem. Finally, Mooshak reports back the result of the submission. The most common feedback messages are those in the following table: Accepted Presentation Error Wrong Answer Time Limit Memory Limit Runtime Error Invalid Function Output Limit Compile Time Error Program Size The program successfully passed all the tests. The program passed all the tests, but the output does not respect the format described in the problem statement. Typically, there are extra space characters, missing newline characters or some characters in lower case when they should be in uppercase or vice-versa. The program gave the wrong output in at least one of the tests. The program was still running when the time limit for the problem was reached and was aborted. The program was using more memory than what was allowed for the problem. The program crashed in one of the tests. The program exited but the return code is different from zero. The program was creating more output than was allowed for the problem. The compiler issued one or more errors. The source file is too large. Notice that Invalid Function does not mean your program tried to call any function that is invalid. It means that the program exited and, while exiting, the return code was not zero. This is especially important for C programmers: make sure the last statement in the main function is return 0; Mooshak will not accept the exact same submission twice. If, by mistake, you submit a file that you have submitted before and the file hasn t changed, Mooshak reports duplicate submission. After you make a submission, you cannot make another submission until after 60 seconds. 2 How does Mooshak compile programs? Mooshak accepts programs in any of the languages that are installed. In our contest, we have three languages: C, C++ and Java. Mooshak recognizes the language by looking at the extension in the source file name. The extensions used in our contest are those in the following table: C.c C++.cpp Java.java If you don t use one of these extensions, Mooshak won t be able to process your submission. For Java, there s the additional rule that the submitted source file must have the name of the class that contains the main method. Once Mooshak receives a submission whose language it recognizes, it compiles it. Note that Mooshak runs on a Linux machine, using compilers that perhaps are not exactly the same as those you have in your computer. Therefore, it may happen that Mooshak reports a compiler error in a program that appeared errorless when you compiled with the compiler you have. The compilers Mooshak uses in our contest are the following: C and C++ gcc version Java javac 1.6.0_12 For each language, the compiler is called using the following command lines, where the variable $file holds the file name of the program that you submitted: C C++ Java /usr/bin/gcc -Wall -lm $file /usr/bin/g++ -Wall $file /opt/jdk1.6.0_12/bin/javac $file In case Mooshak reports a Compile Time Error, the message Compile Time Error is a link. If you click on the link, you will get a description of the errors generated by the compiler. If you normally do not use the same compilers as the Mooshak tool, it may be wise to have them installed in your machine, if possible. A list of these compilers will be posted on the FAQ page. You can still develop your programs using the environment you are used to, but then, before you submit, do a compilation with the official compilers, using the given command line, and do not submit unless there are no errors or warnings. Note that if the compiler produces any output, either an error or a warning, Mooshak reports Compile Time Error. It is not a good idea to use Mooshak for compilation, instead of using the local compilers. A Compile Time Error is an error, and your score will be penalized for each Compilation Time Error you get. 3 How does Mooshak evaluate programs? The judges have set some test cases for each problem. Each test case is formed by a pair of text files: the input file and the expected output file. Your program is run on each test case, getting its input from the input file, and sending its output the obtained output file. If the obtained output file is exactly equal to the expected output file, then the test case is accepted. If all test cases are accepted, your submission is marked Accepted. Otherwise, Mooshak reports the most serious error that was detected. For example, if one test case gave a wrong answer and another exceeded the time limit, the feedback is Time Limit. Once you achieve an accepted submission to a problem, you will not be allowed to submit to that problem again. Note that only the input output behaviour is tested by Mooshak. For the purpose of Mooshak, the programming style does not matter, but it matters for you, of course. In all standard problems, programs get all their data from the standard input and send all the results to the standard output. There are no named files in the programs, whatsoever! Upon testing, your program, which must have been designed to read from the standard input, will get its data from the input file, by redirecting the standard input to that file, on the command line Mooshak uses to call your program for the given test. Likewise, your program, which must have been designed to write its results to the standard output, will actually write on the obtained output file, by redirecting the standard output to this file, on the command line. This is done automatically by Mooshak. If you are not familiar redirecting the standard input and the standard output in the command line, please ask your proctor or your programming teacher. How do I ask a question during the contest, if I need a clarification? The judges have tried their best to describe the problems in a clear and unambiguous way. Each problem has a story, states the task that has to be performed, explains the input format and the output format, shows the constraints on the values of data, and presents samples of the input files and output files. If you fell you need some clarification on the problem statement, you should use the Question button, which leads you to a panel where you may type in your question. In each case, you must indicate the problem the question relates to. If you do not indicate the right problem, your question may be forwarded to the wrong person, and the answer may take longer. Your questions and the replies by the judges will be available to all contestants. Please do not ask what is the error with my program? You will get no reply. If you program is not accepted by Mooshak, it s up to you figure out the error, by using your programming abilities. Also, please do not ask the judges to offer more test cases, other than those in the problem statement. Actually, the samples in the problem statement are not meant to be test cases, but only to illustrate the format of the input and the output. If you feel you need more test cases, you should create them. 4 Input and output format All the input files for the test cases respect the given constraints. You do not need to check them. (If you do, you will be wasting your time.) Please respect the output format precisely. In particular, make sure to remove all debug messages before you submit. Do not leave extraneous spaces and do not forget to finish the last line in the output file with the newline character. Provisional ranking During the contest, you will be able to consult the ranking of all the teams competing. This ranking is provisional, and is based on number of submissions and then total time. That is, the first team in the ranking is the team with more Accepted submissions. In case of a tie, teams are ranked by total time. The total time is the accumulated time of submission, for each submission that was accepted, plus 20 minutes of penalty for each submission that was not accepted, counting only problems which have a submission that was accepted. The special contest Our IEEExtreme contest has two Mooshak contests; the normal contest and the special contest. The above discussion applies to the normal contest. The normal contest has standard input output problems, i.e., problems that get their data from the standard input, perform some computation and write their results to the standard output. We have a few problems that do not fit that model and those are presented in the special contest. Output only problem We have one output only problem. For this problem, you do not submit a program: instead, you are given the input files and you submit the obtained output files. Of course, we assume you will write a program to compute the solution to the problem and use it to obtain the output files from the input files. However, we fear that you re your program may take a few minutes to compute, and we want you to use your computer run it, not Mooshak s computer. In this case, you must submit a zip file (extension.zip) with the output files that are specified in the problem statement. Mooshak will not evaluate your files immediately. The judges will do that only after the contest is over. Thus, the message Accepted that you will get means only that the submission was received, not that your solutions are correct. Problems with special correctors Some problems cannot be evaluated by simply comparing the expected output file with the obtained output file. Those programs will have to be evaluated offline, after the contest is over. Still we require that you submit the source files. In this case, however, Mooshak only compiles the program; it does not run it. Thus, if you get Accepted, it does not mean that your program passed all the tests. It only means that compilation did not produce any errors. If there are compilation errors, you will get Compile Time Error, as in the normal contest. 5 Other cases There are other kinds of problem in the special contest. Submission instructions are provided with the problem statement. Multiple accepts All problems in the special contest allow multiple accepts. This means that after you receive the Accepted feedback message, you may continue to submit to that problem. Note, however, that the judges will only consider the last submission to each problem. (Remember that in the normal contest, once a problem is accepted, you cannot make any more submissions to it.) There are no penalties in the special contest. Scoring All problems in the special contest are scored only after the contest is over. Thus, the ranking that is displayed in Mooshak in the special contest has no meaning, other than summarizing the activity in the contest. Final ranking The final ranking will only be known after the contest is over and all problems in the special contest are graded by the judges. The ranking is based on number of points. The following formula will be used to compute the points of each team: P = 1780 * N T + 10 * S, In this equation, P represents the number of points for a team that solved N problems in the normal contest, using a total time of T minutes (including penalties), and that scored S points in the problems of the special contest. Practice session A practice session will be held October 22, between 0:00 and 24:00, GMT. This practice session will feature a few very simple problems, just for the purpose of letting contestants get acquainted with the judging system. We recommend that you do not just try to solve the problems. That is, before submitting the solution, please do force some errors, so that you can observe the feedback. Remember that once a submission to a problem is accepted, you will not be able to submit to that problem again. Unacceptable behaviour Any team that is found cheating, or not obeying the rules, or not using Mooshak solely for the purposes of the contest, or engaging in activities that may jeopardize the contest will be removed from the contest immediately. Problem setters and judges Pedro Guerreiro (chief judge) Christophe Hannosset Andreas Koltes Dimitrios Lyras Oded Margalit Giorgos Michael José Valente de Oliveira 6 Francisco Câmara Pereira Pedro Ribeiro Szymon Wasik Technical team Helder Daniel Matthew Erickson Pedro Guerreiro (chief judge) Andreas Koltes José Paulo Leal Giorgos Mixail Cristina Vieira Organization team Marko Delimar Matthew Erickson Pedro Guerreiro Elizabeth Johnston (chief organizer) Luka Lugaric IEEE Staff John Day Laura Durrett Christine Eldridge Nick Lehotzky Khanh Luu Elyn Perez Vera Sharoff 7
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks