2017 ACM-ICPC North America Qualifier Contest

This page was last updated July 19, 2017 at 23:55 (America/Chicago).

What is the North America Qualifier?

The ACM ICPC North America Qualifier is an online-only programming contest. If you are a coach, you can use it in place of a local competition to help you determine teams for your regional ICPC contest. Or you can use it as extra practice. Despite its name, the North America Qualifier does not qualify (or promote) any team to a regional competition.

The 2017 ACM-ICPC North America Qualifier Contest will be October 7, 2017 at 11:00 - 16:00 (CDT). It is an online contest, held on Kattis.

Here are key dates for the preparation process:

  • Problem reviewers: please email hamerly@cs.baylor.edu if you are willing to review problems for the contest by June 23rd.
  • Problem writers: please submit your Problem proposal(s) by June 26th.
  • Problem reviewers: reviews due by July 12th.
  • Problem writers (for selected problems): final problems due by August 9th.

Registration

Coaches, please register your teams on the Baylor ICPC registration site. At registration close, we will take this data and use it to create the teams on Kattis. Note that you must register for this contest to participate; registering for a regional does not register for this contest, or vice-versa.

Make sure you register your team for the contest titled "North America Qualifier". (There are other contests with the word "Qualifier" in the name, so be careful.) After registration is closed, due to the number of teams and the limited support it will be impossible to accommodate new registrations or changes to existing registrations. So please register early.

There is one contest, with 12 "sites". The 12 sites correspond to the 11 regions of North America, plus one extra site for contestants who are not eligible to compete in ICPC in North America (e.g. high school students or people whose school is not in an ICPC North America region). Please register for the site that corresponds to your region. Here are direct links for each region (using these is likely the simplest route to registration):

East Central NA Site Greater NY Site Mid-Atlantic USA Site
Mid-Central USA Site North Central NA Site Northeast North America Site
Pacific Northwest Site Rocky Mountain Site South Central USA Site
Southeast USA Site Southern California Site ICPC Ineligible Site (e.g. for high-school students, students at a university outside North America, etc.)

Coaches may register as many teams as they like (each team can have anywhere from 1 to 10 competitors — that's up to you). If you are in doubt about how many you may need, register more up front (as it will be impossible to add teams after registration freezes). But please try to be somewhat realistic for our planning purposes.

Coaches can create empty teams as placeholders, but should fill them with the actual students that will compete before registration is closed. "Empty" teams will not get competition login credentials.

Once registration is closed, registered team coaches will receive information on how to access the contest control system (Kattis) via email to the registered coach of each team.

Basic details

  • What is it? An online (distributed) programming contest, offered as a drop-in replacement for so-called "qualifying" contests (e.g. school-level, pre-regional competitions).
  • When is the contest?October 7, 2017, 11:00 - 16:00 (CDT).
  • When does official registration begin? It's open.
  • When does official registration close? Please see the official ICPC registration site.
  • Can I register after registration is closed? No, due to the number of expected people participating and the limited support. Please make sure to register for the correct contest before the deadline.
  • Where do I register? See the links above on this page.
  • What contest should I (a coach) register my team for? The site corresponding to your region. Note that this is the "North America Qualifier", not a regional competition. As the names of different contests may look similar, please make sure you register for the North America Qualifier, and the site corresponding to your region.
  • What if I am not a part of ICPC? Please register then for the ICPC-Ineligible site. This is for contestants who are (e.g.) in high school or are otherwise ineligible to participate in a North American ICPC region.
  • Is this a qualifying contest, a practice contest, or something else? We are calling this a qualifying contest for the regional competitions. It can be (but is not required to be) used to help choose teams for the regional programming competition.
  • Why is it being offered so early in the fall? To make sure it precedes all North American regional competitions.
  • Must students participate in teams of three? Coaches may make teams of one to 10 contestants, but no prescribed number is required. The coach decides for their school and teams.
  • Must I participate? No. If you don't find this useful for your situation, feel free to ignore it.
  • I already offer a contest. Why should I use this one? There are several benefits. It will save you work, increase registration for your region (which helps in allocation of wildcard slots for the world finals), and gives all registered students a free year of ACM student membership.
  • How will results be used? However the coaches choose to use them. The results do not dictate anything about which contestants get to go to regionals, for example. However, one way we envision a coach may use the results is to select the top-finishing team(s) for the regional competition.
  • Where should I go to compete? Please compete wherever you are. This is an online competition, so teams can meet in a common location, but coaches should organize that on their own.
  • What resources does a local site need to provide? For each team, a computer with internet access, a web browser, and whatever development environment(s) you wish.
  • What judging system will be used? Kattis. You can create a free account and try out Kattis at open.kattis.com. Note that the actual contest may be hosted at a different website with different login credentials (which your coach will receive via email after registration closes).
  • Do I need to provide / can I provide my own judging? No, it will be done through Kattis and our centralized contest management.
  • Can I provide my own problems? We welcome your offer to contribute problems to the official problem set — if you wish to do this, please contact Greg Hamerly. However, we will not support additional problems for just one site.
  • What languages will be supported? C, C++, Java, and Python 2 and Python 3.
  • How many problems will there be? About 10-12.
  • What will be the difficulty level of the problems? We are aiming for a wide range, with multiple easier problems for novice programmers.
  • How will the contest run? Contestants will submit code and receive responses via the web. Coaches/facilitators should ensure the integrity of their own contestants (such as internet usage during the contest, appropriate books and materials, etc.).
  • Is this one contest or multiple contests? While we will use one set of problems, offered at one time, each participating school will be in its own contest with its own set of results. Results will not be collated across schools.
  • How much does this cost? It's free.
  • Will there be a practice portion of this contest? You can practice using the Kattis system at open.kattis.com. You can create a free account and submit problems to the judging system, just like in the qualifier. The actual qualifier will be hosted at a different website with different credentials.
  • Who should I contact with questions? Greg Hamerly

Contest scoring

This contest scoring system will be the same as the world finals. That is, the winner is the team solving the most problems. If two teams solve the same number of problems, then the team with the lowest time is the winner. If two teams have the same time the submission time of the last solved problem is used as a tie-breaker.

The time is the sum of the time of submission (in minutes) of the earliest correct submission for each solved problem, plus any penalty minutes for each incorrect submission of a problem prior to solving that problem. Penalties are 20 minutes for any of the following reasons:

  • Run Time Error
  • Time Limit Exceeded
  • Wrong Answer
  • Output Limit Exceeded
  • Memory Limit Exceeded

Compile error does not incur a penalty; it is not considered a valid submission. Illegal Function does not incur a penalty, but any illegal function will be investigated and a team may be disqualified from the competition if the judges consider the program an attempt to exploit the contest system.

For more information on how Kattis scores problems, please see Kattis documentation.

For problem-writers

We are using the Kattis Problem format for developing problems. This is the format used for the ICPC world finals. It provides a structure for problem writeups, test data, solutions, and configuration. It automates problem verification (for solutions and anti-solutions), time limit determination, and finally installation. There are two parts: the problem format and the problem tools.

Kattis problem format

Here is some information on the Kattis problem format:
  • There is an introduction to developing problems in the Kattis problem format.
  • There is also a very detailed guide to developing problems in the Kattis problem format.
  • The minimum things you need to provide for a problem are:
    • Read and fill in the relevant problem.yaml fields — at least "author". Most are done for you already.
    • Write the problem statement in problem_statement/problem.tex using simple LaTeX.
    • Put sample and secret test data files in data/sample and data/secret using .in and .ans suffixes with corresponding prefixes (e.g. A.in corresponds to A.ans).
    • Put at least one solution to the problem in submissions/accepted (preferably one in Java and one in C/C++)
    Other nice things to have in a problem are:
    • submissions/wrong_answer — program(s) which give wrong answers on (some) included test data
    • submissions/time_limit_exceeded — program(s) which take too long on (some) included test data
    • submissions/run_time_error — program(s) which cause a run time error on (some) included test data
    • data/*/*.desc files to describe each test (e.g. A.desc)
    • data/*/*.hint files to give feedback to submitters that fail on that test case in non-contest environments (e.g. A.hint)
    • data/*/*.{png|jpg} files to illustrate each test case to judges (e.g. A.png)
  • Start by modifying this sample ("skeleton") problem package.
  • For more examples of problems formatted in the Kattis problem format, here is the problem set for the 2014 ICPC NWERC. Warning: this is a large download; about 90MB.

Kattis problem tools

After you're done writing your problem, you can use the Kattis problemtools software on a Linux machine to verify the problem (using "verifyproblem") or to compile a PDF or HTML version of your problem statement (using problem2pdf or problem2html, respectively). You can get the Kattis problemtools in two ways:

  • Try first to install this precompiled Kattis problemtools package for Debian / Ubuntu on your Ubuntu or Debian Linux distribution. This was built on Ubuntu 16.04.
  • If that doesn't work, you can download and build the Kattis problemtools package from the source on Github. Clone or download it, run "make builddeb", and then install the resulting package (which is placed in the parent directory).

Primary contact: Greg Hamerly