Programming Contest Format

2-Day Format

The programming contest will have a 2-day format. All problems from the AI, Optimization, and New Languages Round will be released on Friday evening, and you will have until Sunday evening to work on them.

Rounds

AI Round

In the AI Round, you and your team write programs which play mini games against other teams. Your most recent submission will be run against the programs of the other teams periodically (depends on the question), and your scores will be updated on a live leaderboard. You'll be able to view your games and update your strategies accordingly! You will have 45 hours to write and improve your code for different mini games. All code should be written in Python 3.

Optimization Round

In the Optimization Round, you and your team will work on an optimization-based problem, each with random test case generators. These problems are not intended to be solved perfectly - instead, you will be competing against other teams to get the closest approximation to an optimal solution. These problems will have a mathy flair and require some computational tools/thinking to get a decent answer. You will have 45 hours to gradually optimize your solutions. Your score for each problem will be determined by your most recent submission, and displayed on a live leaderboard. All code should be written in Python 3.

New Languages Round

In the New Language Round, your team will have to solve coding puzzles in a newly created esoteric programming language. The challenges may range from simple arithmetic to representing more complex data structures and algorithms.

Detailed Rules

General Format

All code must be written in Python 3 for the AI and Optimization Round. Your code will be graded on a system running Python 3.8. The only library you can import is math. You can submit your code whenever you want during the contest, and your most recent submission will be graded and displayed on the leaderboards. Each problem has a certain maximum time and memory limit that your program can run (both per turn and total), which will be specified at the bottom of each problem.

Each question (except new language) has some amount of starter code.The starter code comes with a simple, random strategy that will perform better than the default strategy in most cases.

All submissions in all rounds will be regraded to produce final rankings at the end of the contest (each problem will be normalized so that the best submission is worth 100 points). In the spirit of the competition, and so that everyone can compete to develop cooler solutions, we encourage teams to not hoard solutions and submit at the last minute.