Preparing for the ACM ICPC

We (Darshit Patel and Raj Negi) have been meaning to do something for the ACM ICPC participants from our college. However, due to our commitments, we haven't been able to do sufficient justice.
Here we are though - with this small guide to preparing for the ACM ICPC.

Let's cut to the chase

ACM ICPC you already know what it is.

You (let's hope) know when it is. (If you don't know, the online round is on 22nd October, 2016)

First things first - read the rules. READ THE RULES REALLY!!! I know, right? Who the hell reads rules? But this is important! You can be a world-class coder and still bite the dust because you're just a dumb little overconfident kid who thinks otherwise. Each of the contest site rules are different! Trust me on this one, it can be the difference between qualifying and getting all the accolades, and cursing yourself (either case - you deserve it).
Let me make it easier - go here: https://www.codechef.com/icpc/2017 and I kid you not, explore each link on the page related to your site. The official site websites have the rules, and never assume the rules are same for every site. (I learned this the hard way, sadly)

Now, let's proceed to the next step. The Secret. (No Rhonda Bryne pun intended)

The secret to the ICPC is simple.

Practice. Yes, "practice" it is!

However, if you're like us, you probably didn't practice enough. Yes, who's got the time, right?
And the contest is just 3 days away, so how do you start.
I haven't read the rules, but most probably (DISCLAIMER: read rules please), the trick to qualifying for the regionals is very easy.

  1. Identify the simplest problem
  2. Manage to do it in the first 5 minutes (or before the competing teams from your college, in some cases - read rules)
  3. If you've managed to do that, your most troubles are over...hopefully.
Identifying the simplest problem is very easy: and my limited experience suggests that it usually comprises of variations of finding odd/even numbers. However, there might be a dumb little error you made while coding even such a simple problem. So, double check all the test cases, and especially check your edge cases. You really don't want to incur a penalty because you were retarded like a rock.

If you're trying to submit the solution in the first 10 minutes, more often than not, you'll find the codechef site overloaded and not responding to most requests. This is normal. Just hit the mouse buttons and hope none of your competitors managed to submit it. (and bring a backup mouse, just in case).

If you're still hopeful of successfully qualifying for the regionals, read on.

Now, as true programmers, we must find the next simplest problem. This can be done by looking at the scoreboard. Try the next best problem with the most submissions.

Then give up trying to solve it, and wish you were dead because the problem is mighty difficult(how did the organizers even think that 3 hours are sufficient for 6 problems?!)

Just kidding.

There usually is a problem which requires good mathematics, so a good choice while forming teams is selecting a person who's great at it. I've also observed that there's almost always some variation of the Knapsack problem, and the Coin change problem. A good resource to study these would be the GeeksForGeeks website.

However, for more reliable data related to the questions, search the Baylor site to find the previous years' questions of the sites you've registered for.
Arghh, I know what you're thinking, here it is: https://icpc.baylor.edu/

If you're selected, well and good! Bask in the glory!
If you do not qualify though, practice! There's always a chance the next year. And you'd definitely be a better prepared person next year because of the experience.

Some links: 


All the best!!

Contact us for help using "darshit12" and "thecodersblock" with "@gmail.com" domain.