ProCo Information
General Info
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.
Divisions
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 two years of programming experience. All teams may compete in the Advanced division.
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 59, Safari 8 (for OS X Yosemite), Chrome 58, Opera 19.0, and Microsoft Edge. Optimal browsing experience will be achieved with Firefox, Safari, or Chrome.
Food
Lunch (pizza) will be provided. If you do not wish to eat pizza, please bring your own lunch.
Prizes
Cool prizes will be awarded to the highest-scoring teams and vary year to year. Previous first place prizes have included Raspberry Pis, iPad Minis and Nintendo 3DSes.
Rules
Access and Communication
- 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:
- If other sites for documentation are desired, they must be pre-approved by a member of the ProCo staff
- The use of external code or pre-writted code is prohibited.
- External communication is prohibited.
- The only programs allowed 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 (System.in 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. See below for examples for input and output.
- Java
- C++
- C
- Python 2.7
Submissions
- We will be accepting submissions in C, C++, Java, Python 2.7, and Python 3.6.
- Solutions will be graded using GNU C++11, Java 1.8.0, Python 2.7, and Python 3.6 on Linux machines.
- All files must be named in the format specified on your problem statement. File extensions must be the following:
- C: problem.c
- C++: problem.cc or problem.cpp
- Java: problem.java
- Python: problem.py
- 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 (Round 1)
The speed round duration will be 2 hours and will consist of 8-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
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 (Round 2)
The special round duration will be 2 hours. More rules and scoring details are dependent on the year.
Schedule
ProCo 2019 will be held in the William R. Hewlett Teaching Center, located at 370 Serra Mall Stanford, CA 94305.
Below is the tentative schedule of events for May 12th. Registration will occur directly outside William R. Hewlett Teaching Center. Students should arrive early to ensure their equipment is working properly. Parents and teachers are welcome, though not expected, to stay for the duration of the contest.
Event | Time | Location |
---|---|---|
Check-in | 8:00 AM - 9:00 AM | Outside Hewlett Teaching Center |
Opening Ceremony | 9:00 AM - 9:30 AM | Hewlett 200 |
Warm-Up | 9:30 AM - 10:00 AM | Hewlett 200 |
Speed Round | 10:00 AM -12:00 PM | Hewlett 200 |
Lunch | 12:00 PM - 12:45 PM | Outside Hewlett Teaching Center |
Special Round Debrief | 12:45 PM - 1:00 PM | Hewlett 200 |
Special Round | 1:00 PM - 3:00 PM | Hewlett 200 |
Discussion | 3:00 PM - 4:30 PM | Hewlett 200 |
Awards Ceremony | 4:30 PM - 5:00 PM | Hewlett 200 |
Past Contests
Past contest results and problems can be found here.
External Resources
In order to prepare for ProCo, you may want to familiarize yourself with problems from similar contests. At the following sites you can find repositories of problems of varying styles and difficulty. Most of these problems are for training purposes and will be harder than the problems given. Recommended links (similar format or similar difficulty level) are listed first.
- USACO Algorithmic training and practice
- CodeForces Online programming competition
- TopCoder Online programming competition
- Google CodeJam More programming practice
- PKU Algorithmic problem set database
- UVA More algorithmic training
- Project Euler Math-oriented programming problems