This page was last updated September 25, 2016 at 22:33 (UTC).
What is the North America Qualifier?
The ACM ICPC North America Qualifier is an online
(distributed) programming contest, offered as a drop-in replacement for
so-called "qualifying" contests (e.g. school-level, pre-regional
competitions).
The 2016 ACM-ICPC North America Qualification Contest will be September 24, 2016 at 11:00 - 16:00 (CDT).
It is an online contest, held on Kattis.
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.
Each year people have registered for the incorrect contest, and that has
prevented them from participating. Coaches, please ensure you have registered your team for the
contest titled "North America Qualifier".
(There are other contests with the word "Qualifier" in the name, so be careful.
Registering for a regional contest does not register for this
contest.)
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):
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.
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? — September 24, 2016, 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 14.04 (trusty).
- 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