Final Contest Spring 23

Week 11 (April 28)

After 11 weeks of competitive programming we are finally at the end of the semester. To celebrate this occasion, we will have an end of semester special contest with prizes. The contest is open to all undergraduate students at Princeton, and will have two brackets/divisions, one for students that have little to no experience in competitive programming, and one for students that are more comfortable with competitive programming. There will be prizes for both divisions, so everyone has a chance of winning! Students that participated in the ICPC contest earlier this year are only eligible for the advanced bracket/division.

Bring a laptop and optionally pen and paper to work on problems. To participate all you need is an account on codeforces (create one here) and then to join our codeforces group (if you haven’t done so already, click on “Join” on this page). Just before the contest starts on Friday we will provide the links to the submission pages.

The contest starts this Friday April 28 at 5:10pm and lasts two hours, so it finishes at 7:10pm, and it will take place in Friend Center 008. Try to show up at 5pm so you can have time to setup.

We will have free pizza and snacks for everyone, just like we do every week. We will also give away boba in a first-come first-served basis.

Contest Structure

The contest is divided into two divisions: division I; and division II.

You should pick whichever one suits you better and you are not allowed to participate on both divisions, so pick one and stick to it. The two divisions will contain different problems and prizes for the top participants in each division. Note that students that participated in the ICPC contest earlier this year are only eligible for division I.

Note that most contest problems will have appeared before in other competitions from around the world, we won’t have original problems in our contests unless otherwise mentioned. You shouldn’t try to search for the original problem, since this would be cheating. You are also not allowed to use tools like github copilot or chatGPT.

Prizes

We will award 5 prizes from the following list:

The winners of the contest get to pick one of this prizes in the following order:

The secret challenge is an extra prize that will be defined in advance, but only revealed after the contest. Last semester it was awarded to the contestant that submitted the last accepted solution.

Contest Rules

Before the contest starts

If you have participated in one of our sessions in the past you can skip the following steps.

  • You will need to have an account on CodeForces in order to participate. Go to https://codeforces.com/ and click on *Register* on the top left to do so.
  • Once you have an account, go to the Princeton Competitive Programming group on codeforces here and click on "Join" on the right.

Log in to your codeforces account and follow these steps:

  • Add your name and codeforces username to this spreadsheet (if you participated in the contest in the fall your name will be there already).
  • Decide whether you want to participate in the Division I or Division II contest. Please pick the one that suits you better, if you have never been to one of our past Princeton competitive programming sessions and have no or little experience in competitive programming, choose Division II, otherwise choose Division I. You are not allowed to change divisions after you pick one.
  • Go to our codeforces group page and click on "Register" next to the division you picked. You should see a "Spring 23 - Div. 1 - Week #11 - End of Semester Contest" for Division I and "Spring 23 - Div. 2 - Week #11 - End of Semester Contest" for Division II.

The contest starts at 5:10pm and ends at 7:10pm. Good luck!

During the contest

Once the contest starts, you will be redirected to the contest page (if that doesn't happen click on "Enter" next to the contest on the codeforces group page). Here are some things to keep in mind:

  • The problems are sorted by expected difficulty, so problem A is no harder than problem B, and B no harder than C, and so on.
  • To work on a problem first click on the problem and read the problem statement carefully. You will have to implement a solution in your favorite programming language (for example, you can use Java, C/C++, Python, Pascal and more) that reads some input from standard input and outputs something to standard output. The format of the input and output, as well as the restrictions on how large the input can be, are specified in the problem statement. You will also see some example inputs and expected outputs, that you should use to test your solution. When you think you have a solution, you can choose your language, upload your submission file and click on "submit". When you submit your program is ran with many different inputs (not just the example ones) and its output is compared to the expected one. If your program produces all the right outputs in the allotted time, then you will get an Accepted verdict, which means you have successfully solved the problem.
  • The problems are not original, they have showed up in other contests from around the world and were slightly modified. You shouldn't try to search for the original problem, since this would be cheating. You are also **not** allowed to use tools like github copilot or chatGPT.
  • The scoreboard ranks students by number of solved problems. To break ties, codeforces sums the number of minutes taken to solve each problem, plus 10 minutes per incorrect submission to an accepted problem, whoever has the least such number is ranked first.

If you have any questions before or during the contest ask Pedro (me), he (I) will be at the front of the room.