ACM ICPC NEERC

Regional Contest Rules

Important changes are in red.

Introduction

  • International Collegiate Programming Contest (Contest) is conducted by Association of Computer Machinery (ACM) and is sponsored by IBM. Northeastern Europe Regional Contest is conducted by Ministry of Education and Science of the Russian Federation, St. Petersburg National Research University of Information Technologies, Mechanics and Optics and Altai State Technical University.
  • Regional Contest is simultaneously organized at:
    • Saint Petersburg — St. Petersburg National Research University of Information Technologies, Mechanics and Optics;
    • Barnaul — Altai State Technical University;
    • Tashkent — Tashkent University of Information Technologies;
    • Tbilisi — Georgian Technical University.

Mission

  • The ACM International Collegiate Programming Contest (ICPC) provides college students with opportunities to interact with students from other universities and to sharpen and demonstrate their problem-solving, programming, and teamwork skills. The contest provides a platform for ACM, industry, and academia to encourage and focus public attention on the next generation of computing professionals as they pursue excellence.

Introduction

  • The contest is a multi-tiered competition among teams of students representing institutions of higher education. Teams first compete in Subregional Contests. The winning teams from each subregional contest qualify to advance to the Regional Contest (Northeastern European Regional Contest, December 3-4, 2016). The winning teams from each regional contest qualify to advance to the ACM International Collegiate Programming Contest World Finals.

Localization

  • The official language of the Contest is English. All written contest materials will be in English.
  • The secondary language of the Regional Contest is Russian. All announcements will be made in both Russian and English.
  • The Director and the Organizing Committee of the Subregional Contests may use additional languages of the Subregional Contest participants.

Conduct of a Regional Contest

  • Board of directors of the Regional Contest:
    • establishes Organizational Committee of the Regional Contest;
    • prepares recommendations to the Organizational Committee concerning Jury and Technical Committee;
    • appoints directors of Subregional Contests of the Regional Contest;
    • solves questions concerning organization of new Subregional Contests.
  • Organizational Committee of the Regional Contest:
    • settles dates of the final round of the Regional Contest;
    • settles possible dates of the Subregional Contests of the Regional Contest;
    • approves Jury and Technical Committee put forward by the Director of the Regional Contest;
    • creates and approves the expense estimate of the Regional Contest;
    • approves Technical Regulations of the Regional Contest  put forward by Jury and Technical Committee;
    • determines the place of residence for competitors, delegation heads, Jury members and Technical Committee members;
    • determines the venue of the Regional Contest  and issues the corresponding order;
    • supplies of the venue of the Regional Contest with computers according to the these Regulations, Technical Regulations, safety measures and hygiene and sanitary standards;
    • carries out registration of participants;
    • organizes and carries out the award ceremony for the Regional Contest  participants;
    • analyzes and generalizes the Regional Contest results.
  • The Regional Contest Jury consists of the Head of the Jury Chairman, the Heads of the Subregional Contests' Jury and other Jury members.
  • The Regional Contest Jury:
    • proposes problems for the rounds of the Regional Contest;
    • the Head of Jury forms the Executive Committee of the Jury.
  • Executive Committee of the Jury:
    • prepares the Technical Regulations together with the Technical Committee;
    • evaluates the proposed problems and forms the set of the problems for the Regional Contest;
    • develops and approves the problem statements for the Regional Contest;
    • develops the tests for submission evaluation for the final round of the Regional Contest, including automated problem checkers;
    • conducts evaluation of competitors' submissions on the Regional Contest;
    • prepares the standings of the Regional Contest;
    • makes the final decision on the disqualification of the participants, who violate the Rules or the Regulations of the Regional Contest;
    • determines the Regional Contest  winner and awardees;
    • forms the supplementary set of problems and tests for the Subregional Contests.
  • The Technical Committee of the Regional Contest consists of the Head of the Technical Committee, the Heads of the Subregional Contests' Technical Committee and other Technical Committee members.
  • The Technical Committee of the Regional Contest:
    • prepares the Technical Regulations together with the Executive Committee of the Jury;
    • carries out configuration of computers according to the Technical Regulations;
    • ensures uninterrupted operation of computers during the Regional Contest;
    • ensures the conduct of the Regional Contest in the correspondence to these Regulations and the Regional Contest Rules.

Organization of the Subregional Contests

  • The Subregional Contest Director is appointed by the Board of directors of the Regional Contest
  • The Subregional Contest Director:
    • establishes Organizational Committee of the Subregional Contest;
    • prepares recommendations to the Organizational Committee of the Subregional Contest concerning Jury and Technical Committee of the Subregional Contest.
  • Organizational Committee of the Subregional Contest:
    • settles the dates of the Subregional Contest;
    • approves Jury and Technical Committee of the Subregional Contest put forward by the Subregional Contest  Director;
    • creates and approves the expense estimate of the Subregional Contest;
    • approves Technical Regulations of the Subregional Contest put forward by Jury and Technical Committee of the Subregional Contest;
    • determines the place of residence for competitors, delegation heads, members of the Jury and the Technical Committee of the Subregional Contest;
    • determines the venue of the Subregional Contest  and issues the corresponding order;
    • supplies the venue of the Subregional Contest  with computers according to the these Regulations, Technical Regulations, safety measures and hygiene and sanitary standards;
    • carries out registration of participants;
    • organizes and carries out the award ceremony for the Subregional Contest  participants;
    • analyzes and generalizes the results of the Subregional Contest.
  • The Jury of the Subregional Contest consists of the Head of the Jury and at least three other Jury members.
  • The Jury of the Subregional Contest:
    • prepares the Technical Regulations of the Subregional Contest together with the Technical Committee of the Subregional Contest;
    • develops and approves the problem statements and the tests for submission evaluation for the Subregional Contests or takes the decision to use the set of the problems formed by Executive Committee of the Jury of the Regional Contest;
    • conducts evaluation of competitors' submissions on the Subregional Contest;
    • makes the final decision on the disqualification of the participants, who violate the Rules or the Regulations of the Subregional Contest;
    • prepares the Subregional Contest  standings;
    • determines the Subregional Contest  winner and awardees.
  • The Head of the Jury of the Subregional Contest forms the Executive Committee of the Jury of the Subregional Contest if necessary. In other case, all duties of the Executive Committee are held by the Jury.
  • The Technical Committee of the Subregional Contest consists of the Head of Technical Committee and Technical Committee members.
  • The Technical Committee of the Subregional Contest:
    • prepares the Technical Regulations of the Subregional Contest together with the Jury of the Subregional Contest;
    • carries out configuration of the computers according to the Technical Regulations of the Subregional Contest;
    • ensures uninterrupted functioning of the machinery during the Subregional Contest;
    • ensures the conduct of the Subregional Contest in the correspondence to these Regulations and the Subregional Contest Rules.

Team Composition

  • A representative of the sponsoring institution of higher education, typically a faculty member, must serve as or designate the team coach. The coach certifies the eligibility of contestants and serves as the official point of contact with the team prior to and during contest activities. A team may only have one coach.
  • The coach must fully register teams in the ICPC Registration System 7 days before the subregional contest. A team is not eligible to compete in the regional contest until the regional contest director has accepted the team in the web registration system. Teams failing to comply with any of these requirements will be ruled ineligible to compete. Only registered reserves may be substituted for contestants. Such substitutions must be entered in the ICPC Registration System by the regional contest director before the contest begins.
  • Each team consists of three contestants and may have at most one official reserve. Teams with fewer than three are ineligible. Each contestant and reserve must satisfy the following competitor eligibility requirements.
    • A student must be willing and able to compete in the World Finals.
    • A student must be enrolled in a degree program at the sponsoring institution with at least a half-time load. This rule is not to be construed as disqualifying co-op students, exchange students, or students serving internships.
    • A student may compete for only one institution during a contest year.
    • A student who has competed in two World Finals is not eligible to compete.
    • A student who has competed in five Regional Contests is not eligible to compete. Subregional contest and Regional contest for which that Subregional contest is qualifying count as one contest for this rule. (Therefore a competitor may totally compete in five seasons at most).
    • Each competitor must satisfy at least one of the following:
      • be born not earlier than January 1, 1993;
      • start his/her first post-secondary study not earlier than January 1, 2012;
      • have completed no more than 8 complete semesters of full-time study (ICPC Manager verification required).
  • In the event of qualifying to advance to the World Finals, competitors must be prepared to provide a history of work and educational experience including a transcript to substantiate eligibility.
  • In case of organizational or technical impossibility to provide participation of all teams that applied, the Subregional Contest Director of Subregional Contest has the right to institute additional requirements towards the Subregional Contest participants, provided that it is approved by the Regional Contest Director.
  • Winners of Subregional Contests and other teams are admitted to participate in the Regional Contest according to Teams Selection Regulations approved by the Board of directors of the Regional Contest.

Procedure of organization and conducting of the Contest

  • The duration of one round is five hours. The Executive Committee of the Jury holds right to prolong the duration of the round in case of unforeseen circumstances. Should the contest duration be altered, every attempt will be made to notify participants in a timely and uniform manner.
  • On the round each team is provided with one personal computer and the set of several problems.
  • At least six problems and at most twelve problems will be proposed for solution. As far as possible, problems will avoid dependence on detailed knowledge of a particular applications area or particular contest language.
  • Participants' computer configuration and the set of supported programming languages are determined by the Technical Regulations.
  • During the competition, participants solve the proposed problems. A solution to a problem is a program written in one of the supported programming languages. The program must not contain auxiliary modules or files. It is allowed to solve different problems using different supported programming languages.
  • Submission evaluation is conducted during the competition. Using special software, the teams submit their problems for evaluation. The Executive Committee of the Jury compiles the submitted programs using command line compilers and checks the programs. Participants should include compiler directives in the submitted program file.
  • Participants' programs are checked against a set of tests prepared by the Executive Committee of the Jury prior to the round. A program is accepted if it passes all tests.
  • Execution time and memory for each program on each test are limited. The programs that exceed these limits are considered inefficient for the given problem. In such case, the test is considered not to be passed, thus the program is rejected. The execution time limit and the accessible memory limit are provided with the problem statements.
  • The submitted program must output the same answers on the same tests, independent of the time of the execution and the program environment. The submitted programs can be executed any number of times and the worst outcome can be counted.
  • Participants may bring and use unannotated natural language dictionaries (except electronic ones), blank sheets of paper and instruments for writing only. Contestants may not bring or use any books (except dictionaries), reference manuals, electronic dictionaries, program listings, any machine-readable information (software or data on any kind of storage), computing devices (handhelds, portable PCs, notebooks, calculators), mobile phones or any other communication devices.
  • During the round, participants are only allowed to communicate with members of their team, members of the Executive Committee of the Jury and the Technical Committee.
  • Participants may use network printer during the contest. The printout will be delivered to the team by representatives of the Technical Committee.
  • A team may be disqualified by the Jury for any activity that violates contest Regulations and Rules or jeopardizes the contest such as dislodging extension cords, unauthorized modification of contest equipment, distracting behavior.
  • Executive Committee of the Jury holds exclusive right to determine correctness of programs against tests, to evaluate programs, to determine the winners and to disqualify participants. The Executive Committee of the Jury solves questions arising in case of unforeseen events and circumstances.

Computer Configuration

  • Each team is supplied with one modern computer with installed operating system Windows 7 SP 1 or newer, connected to the local network.
  • The following software is available to each team:
    • Microsoft Visual Studio Express;
    • GNU C++;
    • Java 8 SDK;
    • Far Manager v3.0;
    • Eclipse JDT+CDT;
    • Intellij IDEA;
    • Code::Blocks
    • gViM
  • Technical Committee holds right to install patches and updates of the listed software.
  • Login and password for the operating system are indicated in the Contestant Handbook.

Programming languages

  • A solution to a problem is a program written in one of the following programming languages:
    • Java;
    • C++.
  • The jury uses the following commands to compile solutions:
    CompilerCommand Line
    Visual C++cl /O2 /EHs /TP <source file>
    GNU C++ (MinGW)g++ -O2 -Wl,--stack=67108864 -x c++ -std=c++11 <source file>
    Java 8 SDKjavac <source file>
  • The jury uses the following commands to run solutions:
    LanguageCommand Line
    C++<executable file>
    Javajava -Xmx512M -Xss64M <class file>

Run evaluation

  • Solutions to problems that were submitted for judging are called runs. Immediately after submission of any run, the team may continue working on other problems.
  • The size of the file with the run may not exceed 256KB.
  • Each run is judged as accepted or rejected.
  • The run is evaluated by executing it on a secret set of tests, common for all participants. A run is accepted only if it gives correct answers to all tests.
  • Runs are not allowed to:
    • access the network;
    • perform any I/O except for opening, closing, reading, and writing of files and standard streams that are explicitly specified in the problem statement;
    • attack system security;
    • execute other programs and create new processes;
    • change file system permissions;
    • work with subdirectories;
    • create or manipulate any GUI resources (windows, dialog boxes, etc.);
    • work with external devices (sound, printer, etc.);
    • do anything else that can stir the evaluating process and the Contest.
  • The Contest software uses different methods to reveal violations of the above restrictions.
  • Evaluation is performed automatically, that is why a program should respect formats of input and output files described in the problem statement. If not explicitly stated otherwise, all input data are considered to be correct and satisfying all restrictions from the problem statement.
  • The memory limit is the maximum amount of memory that a run may utilize.
  • The time limit is the maximum execution time per test.
  • Time and memory limit for each problem is specified in problem statements. A run is not accepted if the program exceeds these limits.
  • As soon as the run is evaluated, a team receives a message with the evaluation results. This message will be shown on the screen and repeated in a hardcopy form. A team is informed whether the run is accepted or not. If the run is rejected the error type and the test number are indicated.
  • All tests cases are numbered from one. The first test cases in the test set are the sample tests from the problem statement ordered in the same way as in problem statement. The following tests are ordered with the idea to make easier test cases come before harder ones, although there are no guarantees.
  • The possible outcomes are listed in the following table.
    OutcomeTest NumberCommentPossible Reasons
    Compilation errorNoExecutable file was not created after compilation.
    • Syntax error in the program;
    • wrong file extension or language specified.
    Security violationYesThe program tried to violate the contest rules.
    • Error in the program;
    • purposeful rules violation (the violating team is disqualified in this case).
    Time limit exceededYesThe program exceeds the time limit.
    • Inefficient solution;
    • error in the program.
    Memory limit exceededYesThe program exceeds the memory limit.
    • Inefficient solution;
    • error in the program.
    Idleness limit exceededYesThe program doesn't consume processor time for a long period.
    • Input from console;
    • not flushing output in interactive problem, waiting for input while output is still buffered;
    • error in interactive problem protocol, waiting for input by mistake;
    • error in the program.
    Runtime errorYes The program terminates with non-zero exit code or throws an uncaught OS exception.
    • Runtime error;
    • missing 'return 0' statement in C++ main function;
    • 'return (non-zero)' statement in C++ main function;
    • 'System.exit(non-zero)' in Java;
    • uncaught exception.
    Presentation errorYes The checker cannot check output because it does not match the format specified in the problem statement.
    • Output format is not correct;
    • no output or wrong output file name.
    Wrong answerYesThe answer is not correct.
    • The algorithm is not correct.
    • Error in program.
    AcceptedNoRun is accepted.
    • Program is correct.
  • The possible outcomes in the table are listed in their order of priority. For example, if runtime error has occurred, then output is not checked.
  • Evaluation process may be stopped several minutes before the end of the Contest. All runs submitted after this moment will be evaluated just after the end of the Contest.
  • The Executive Committee of the Jury will publish all submitted runs after the end of the Contest.
  • The Executive Committee of the Jury will publish the official test set that was used to evaluate participants' solutions after the end of the Contest.

Clarification Requests

  • During the Contest the participants can make Clarification Requests on the problem statements. The clarification request must exactly identify the part of the problem statement that the team considers ambiguous together with the possible interpretations. The Jury encourages participants to use the sample input and output for resolving (apparent) ambiguities.
  • Clarification requests are accepted only in English. A team fills out a Clarification Request form and delivers it to the Jury via the representatives of the Technical Committee.
  • The representatives of the Technical Committee deliver blank Clarification Request forms by request.
  • When the Executive Committee of the Jury responds to the clarification request, the team receives its Clarification Request form with the answer. If the clarification request is incorrect or the answer is clear from the problem description, the Jury answers No comments. If the Jury agrees that there is an ambiguity or error in the problem statement, a clarification will be issued to all teams.

Practice Session

  • During the practice session teams become familiar with the contest environment and the contest software solving sample problems (1–3 simple problems).
  • During the practice session teams may not store any source code anywhere except working directory.
  • During the practice session teams may not attach any devices to the computer or alter its hardware configuration.
  • The results of the practice session are not taken into consideration when determining the Contest standings. However, the Executive Committee of the Jury may disqualify participants from the Contest any team violating the contest rules during the practice session.

Scoring of a Contest

  • A team that has solved more problems is placed higher.
  • In case of equality in the number of solved problems, the team that has a smaller penalty time is placed higher.
  • In case of equality in the number of solved problems and the penalty time, the team that has submitted its last accepted run first, is placed higher.
  • The penalty time is the sum of the time consumed for each problem solved. The time consumed for a solved problem is the time elapsed from the beginning of the contest to the submittal of the accepted run plus 20 penalty minutes for every rejected run for that problem regardless of submittal time. There is no penalty time consumed for a problem that is not solved.
  • Scoring of the team is based only on the time of the first accepted run for each problem.

The results of the Regional Contest

  • According to the standings, the Regional Contest winner team is determined. Teams in the leading places are awarded diplomas indicating the places that they achieved.