ACM Collegiate Programming Contest Winner Announced
Slob Nerd writes "The finals for this years ACM International Collegiate Programming Contest World Finals have just finished. And the winner is... St. Petersburg Institute of Fine Mechanics and Optics! Full results here, and details on all teams here. A pdf of the problems is also available. Congrats to all involved."
What is the appeal of turning everything into a competitive event? Whether its music, literature or programming, someone somewhere is trying to convert a self-contained creative process into a "Nyah, nyah, my college/school/town I'm better than deal."
What happened to the satisfaction of doing something for its own sake?
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
You say the people who "got sloppy" got the problem correct right away. I think a better description would be they put in some tolerance for errors. I would assume you bothered to check your program against the maximum input (to check for time factors).
You also forgot to mention that the three or four team members get to SHARE one computer. So, it's not only important to be able to solve problems quickly, it's also about managing the limited resources at your disposal.
Octavian-Daniel Dumitran (*)
Reid Barton
Victor Costan (*)
Why do you assume that everyone else was "sloppy" and just allocated a big array? If you're going to write a big-int routine it's not that much more difficult to write an arbitrary precision routine than it is to write a "max FOO" precision routine.
In these competition environments with severe time constraints, nobody would write an arbitrary precision routine when an upper limit of FOO is given. Some people do, however, set their "MAX" constant to something much larger than the given, but it is normally assumed that the given "FOO" is correct and the increased "MAX" constant is only to cater for some possible off-by-one or minor overflow errors instead of a problem of the input. After all, not everybody wants to calculate how much space to exactly allocate when some BIGNUM would seem to suffice. *That's* what the grandparent means regarding "sloppy coding".
Don't quote me on this.
Try (print (fact -1)).
Or (print (fact 1.5)).
Or (print (fact "Hi, Mom!")).
In a dynamically-typed language like LISP, it is important to check that the argument(s) is(are) of the right type, as well as within the proper range(s).
So you should add a check to make sure that the arg to fact is a positive integer.
To avoid doing this check every time that the function recurses, fact should do the check, then hand off the calc to a helper function, say, unchecked-fact, that is defined similar to the way that you originally defined fact.
Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
I've been to ACM programming contest myself and pretty much agree with the parent. The sad part was that there where more slots open then participents in my school and I had to actively recruit some of the teammates.
The contest I competed in had IBM as its sponsor, and there was a rep there collecting resumes. There was another regional non-regional that I've competed in sponsored by Sun Microsystems and they where collecting resumes there as well.
I believe that, aside from the challenge, these contests are great way to network with employers, and in a tough job market, every bit counts.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
Yeah, Americans always have this arrogance that we're the best in the world. Truth is, as far as technical schools go, there are some in Russia, Taiwan and India that churn out many more really, truly smart and excellent programmers than even the best schools in the US. But of course, because their English is not so good, they must be stupid. Nevermind the fact that they've been doing calculus since they were probably 14. That gets you labeled a "child prodigy" here. Go figure.