• Each team is allowed to use a single laptop with Internet access. No external screen/monitor or keyboard is allowed.
  • Internet access may only be used for browsing documentation. Browsing any other website is prohibited. The allowed sites are the following:
  • The use of external code or pre-writted code is prohibited.
  • External communication is prohibited.
  • The only programs allowed are are IDE, editors, web browsers, and programming tools. The use of all other programs are prohibited.

Input and Output

  • All input will be received from console input ( in Java, cin in C++, stdin in C, sys.stdin in Python 2.7).
  • All output should be sent to console output (System.out in Java, cout in C++, stdout in C, sys.stdout in Python 2.7).
  • Each program will specify its own output format. Format all output as closely as possible to the specifications. This includes spacing, capitalization, and punctuation.
  • Some java code to help you get started with I/O:


  • We will be accepting submissions in C, C++, Java, and Python 2.7.
  • Solutions will be graded using GNU C++11, Java 1.8.0, and Python 2.7 on Linux machines.
  • All files must be named in the format specified on your problem statement. For example, novX.file_extension, where file_extension is c for C, cc or cpp for C++, java for Java, and py for Python 2.7. Java submissions must follow these rules:
    • Name of the main class should be the task name.
    • All classes should be in one file.
    • Don't include a package statement.
    • Avoid using scanner for efficiency.
  • You will be submitting your (single) code file to us using a web interface. If you are using Java and want to create multiple classes, put all of the class declarations into one file.

Speed Round Format

The speed round duration will be 2 hours and will consist of 10 unweighted problems.

Submissions will be run on a set of test cases which are not revealed to the teams during the contest, and they are accepted as correct if they pass on all of the test cases. Teams will be notified whether their submission is correct within about a minute. If the submission is correct, no further points can be awarded for the problem. If the submission is not accepted, teams are free to resubmit the problem. There is no penalty for incorrect submissions and no limit on the number of submissions per problem.

The submissions from a team do not all need to be in the same language. For example, the same team could solve novA in C, novD in Java, and novF in C++.

Scoring in the speed round will be decided as follows:

Teams are ranked according to the most problems solved. Teams who solve the same number of problems will be ranked in accordance with the earliest time of their last correct submission.

Special Round Format

The special round duration will be 2 hours.

The exact format of the special round is a surprise and has been different every year.

Team Registration

Teams can have between one and three students. Students on a team do not need to be in the same grade, or have the same level of programming experience. If the registration limit is exceeded, we will allocate slots to ensure fair representation of all interested schools based on the following policy:

  • Teams belonging to the same school are ordered by time of registration.
  • Each school’s #1 team will be registered, then each school’s #2 team, and so on until all spaces are allocated.
  • Teams consisting solely of students from the same school will be given higher priority than teams consisting of students from different schools.
  • If we reach our participation cap, any remaining teams will be placed on a wait list, and they will be notified as soon as possible if spots become available.

You will be able to modify your team until one week before contest day (you can only add team members from the same school unless the waitlist is empty). Modification requests should be submitted by email. After this deadline, the only team change you will be allowed to make is dropping members.

Please note that walk-ins are strictly not allowed. Students who try to register onsite on the day of the event will be asked to leave.


There are two different divisions in the competition: Novice and Advanced. A team may compete in the Novice division only if all members have less than a year and a half of programming experience. All teams may compete in the Advanced division.

We will also be offering an online version of the competition after the on-site for non-participants who also want to try out the problems. It will not be ranked, nor will there be official recognition.

Laptops and Equipment

Each team is required to bring a laptop with wireless capabilities (802.11b). You should also bring laptop power cables and extension cords to guarantee power throughout the contest. If you do not bring extension cords, we cannot guarantee access to power outlets.

Each team is restricted to the use of only one laptop. No external screen/monitor, keyboard, or mouse is allowed.

For the speed round, Javascript support is required, and the supported browsers are Firefox 28, Safari 7 (for OS X Mavericks), Safari 6.1 (for OS X Lion and Mountian Lion), Chrome 33, Opera 19.0, and IE11. Optimum browsing experience will be achieved with Firefox, Safari, or Chrome.


Lunch (pizza) will be provided free of charge.


Cool prizes will be awarded to the highest-scoring teams. Previous first place prizes have included iPad Minis and Nintendo 3DSes.


Registration for ProCo 2017 is open until May 1, 2017. Register your team here!

Mailing List


Visit our Facebook page!

Contact Us

Questions? Comments? Email us at