Slashdot Mirror


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."

176 comments

  1. And outsourcing isn't big in St. Petersburg... by hughk · · Score: 4, Interesting
    There are a number of Russian companies doing outsourcing but there is nowhere near the same numbers as in Moscow. Moscow has more MBAs than programmers, but the money is much better. Most people from St. Petersburg wouldn't choose to move to Moscow unless they received a really good offer (ask V.V. Putin).

    St. Petersburg colleges always do well in these competitions, and all that happens is the people end up emigrating.

    --
    See my journal, I write things there
    1. Re:And outsourcing isn't big in St. Petersburg... by Anonymous Coward · · Score: 0

      Congratulations to the SouthAmerican winners, Universidad de Palermo (Buenos Aires, Argentina), where there aren't much programmers!

    2. Re:And outsourcing isn't big in St. Petersburg... by Anonymous Coward · · Score: 0

      Well, dude, in the IT business we do not need brains. Just to rephrase that cartoon from "Bowling for Columbine" - No brains and I do not mean, "I work at Wal-Mart and need no brains", I mean zero brains, nothing, nada, zip!

      Look at the code written over last three decades. Yes I mean COBOL and PL/I code - lower case has been around for 25 years and still some people have never heard about it. But never mind this historical observation - their code itself is so much fucked up you not gonna believe your eyes.

      Those who joined the moron squad ten years ago with fake resumes and "XYZ for dummies" books sticking out of their bags did their best to blow up the dot com bubble. Well, it wasn't a wasted effort, "just doing my job, ma'am" - and voula, the industry is in recession. But who cares, nowadays, if an HR department or a consulting agency is involved, a goof in a suite (who BTW printed his resume on a pink or baby blue paper) will be the one to get hired first. No, I am not justifying script kiddies allergic to shower and addicted to Slashdot, coffee and porno. The thing is, those computer science contests have nothing to do with 99% of activities in IT and, consequently, with outsourcing.

      So do not get upset about the lack of outsourcing companies in Saint-Petersburg , if you're smart enough you'll immigrate. Think about this, alright, why work for two fucks, one in States who saves money moving the jobs from the American market and the second one in Russia, underpaying the programmers. And do not forget that the whole North American thing is all about immigrants and to immigrate and compete locally is another cuppa tea. Unlike outsourcing, immigration only makes America better, and probably Canada too, though I doubt it - it is already the best country ;). Or just a better one? Nevermind...

      PS
      Oh, I myself graduated from Belarus State University, it was not a fiber optics department, merely applied mathematics and computer science department (sort of Belarussian MIT). So I am really glad for our former teacher, Prof. Vladimir Kotov, who teaches computer science there and who's team won the third place. And guess what, it's not "soviet educational traditions", it's just "Introduction to Algorithms" (MIT Press) which rulez, dude. And it rules even translated into Russian. Kinda surprised why MIT guys passed on that one and took only the fifth place. RTFM, I say no more.

  2. Bleh by Rosco+P.+Coltrane · · Score: 5, Funny

    This championship looks very amateurish and unprofessional compared to this!

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:Bleh by Anonymous Coward · · Score: 0

      The Obvious Guys called, they want their (lack of) humour back.

  3. ..in the by good(k)night · · Score: 0, Funny

    It the Soviet Russia the competition solves You!

    --
    my endian is bigger than yours!
    1. Re:..in the by Anonymous Coward · · Score: 0

      It the Soviet Russia the competition solves You!

      No;

      In Soviet Russia the competition programs you!

  4. Respect! by Da+Fokka · · Score: 2, Interesting

    I competed in the Northwest-European finals but didn't make it to the world finals. The problems looked pretty difficult.
    I, for one welcome our new russian fiberoptic programming overlords.

  5. Depressing by gowen · · Score: 5, Insightful

    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.
    1. Re:Depressing by Anonymous Coward · · Score: 1, Insightful

      Ego, Pride, etc. Its a natural human trait that we should take advantage of. And it's not this is not a SINFUL human characteristic like the church and modern american society would like you to believe.

    2. Re:Depressing by gowen · · Score: 1

      This is for undergraduate students. I haven't been an undergraduate for over ten years.

      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    3. Re:Depressing by Anonymous Coward · · Score: 5, Insightful

      It's not like you HAVE to program in this compitition.

      If you want to program, you program for it's own sake.

      Some people actually LIKE competition. They like piting their skills against a advisary. IT'S FUN.

      People sponsor events like this because it gets people public attention. It allows you to identify good programming practices vs bad ones, good programmer's vs bad programmers, good programs vs bad programs.

      People can take this experiance and IMPROVE themselves, they can see were they F*ck'd up and fix it, they can see were they did well and improve on it.

      It allows the winners notoriaty. As a winner you get benifits like having your name advertised, getting a trophy, and you get to point out that for this event you were the best or part of the best programming team around.

      Why would you NOT want to compete? What is wrong with competition?

      IT'S FUN.
      It inspires creativity, hard work, and advancements in technology.
      It gives the winners rewards and it's a learning experiance for the losers so they can improve themselves.

      Why do you find that so depressing?

      It's a win-win situation for anybody and everybody involved that has a good attitude.

    4. Re:Depressing by Anonymous Coward · · Score: 1, Insightful

      Competition isn't nessecarily the best place to show off one's skills. You have an artificial work environment, immense pressure, highly restrictive rules, and hardly any time. This tends to lead to lower quality work, not higher.

      I imagine Russia's team spent a lot more of their time practicing for this situation than everyone else did.

      Someone else pointed out how Mathematics are given much more respect in Russia than they are in America's school system. That is certianly true as well..

    5. Re:Depressing by Anonymous Coward · · Score: 2, Insightful
      >like the church and modern american society

      You don't need to repeat yourself...

    6. Re:Depressing by turbofisk · · Score: 0

      I agree that there may be pressure... But even programmers need to learn to cope with that. In that sense these kinds of competitions are a great way to get used to the pressure of deadlines which do exist in the real world - where you earn your money.

    7. Re:Depressing by gowen · · Score: 2, Insightful
      IT'S FUN.
      Sure it is, just look at the fun DunbarTheInept had. Does the fact he's still bitter months later strike you as evidence that he had positive, fun experience?
      It inspires creativity,
      Insanely tight deadlines do not inspire creativity. Anyone who's had to produce robust codes knows that "Do it now" and "do it right" are mortal enemies.
      and advancements in technology.
      Tell me, what technology couldd possible be advanced by bunch of students solving some already-solved problems in an extreme hurry?
      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    8. Re:Depressing by |<amikaze · · Score: 4, Interesting

      I agree! Last year two friends and I competed in the local, and regional competitions, but didn't go any further than that. It was a blast.

      Plus, having two second-year compsci guys and a first-year engineer come in and beat everyone (including the profs, althought they were writting in Eiffel I think), was pretty funny. Mind you, we only won by a few points.

      When we got to regionals though, it was clear that we didn't have the experience needed to go further. We had 8 hours I believe, and sadly, a few of those were fighting with stupid language problems, instead of actually solving problems. As an example, for one of the problems, we ended up overflowing a double in C, because the data was too big. The solution? Rebuild the same problem in Java, using a BigInt...

      All in all, it was a great time, and since we finished first locally, the CMPT department paid for us to go to regionals.

    9. Re:Depressing by irontiki · · Score: 3, Informative

      When we got to regionals though, it was clear that we didn't have the experience needed to go further. We had 8 hours I believe, and sadly, a few of those were fighting with stupid language problems, instead of actually solving problems. As an example, for one of the problems, we ended up overflowing a double in C, because the data was too big. The solution? Rebuild the same problem in Java, using a BigInt...

      Back in 1991 or 1992 I competed in this; at least back then arbirtrary precision arithmetic was a standard trick they throw into one of the problems.

      In preparation for the contest we divided up several of those kinds of things and wrote simple libraries to deal with those problems (you were allowed to bring hardcopy documentation or code). I worked on the abitrary precision code and don't remember the other libs we developed.

      That you were able to use a built in arbitrary precsion lib by switching languages takes all the fun out. =)

    10. Re:Depressing by Bull999999 · · Score: 1

      It's the same reason why multiplayer games are popular. Win for your team in CTF means loss for the other team.

      --
      1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
    11. Re:Depressing by Anonymous Coward · · Score: 0

      [qoute]
      IT'S FUN.

      Sure it is, just look at the fun DunbarTheInept had. Does the fact he's still bitter months later strike you as evidence that he had positive, fun experience?
      [/qoute]

      If he is sore about losing then it's his problem.

      [qoute]
      Insanely tight deadlines do not inspire creativity. Anyone who's had to produce robust codes knows that "Do it now" and "do it right" are mortal enemies.
      [/qoute]

      Ya but in reality you never get time to "DO IT RIGHT". If somebody in programming tries to be perfect everytime he fails. EVERYTIME.

      Pressure and restrictions forces people to think differently, take chances, take shortcuts. If a person is intellegent and lucky he may figure out something new and exiting by taking chances.

      I bet you that many many people learned very very much in this competition.

    12. Re:Depressing by Anonymous Coward · · Score: 0

      It wasn't aimed at you.. it was a general comment. Thanks a bunch, my neutral karma is now bad. You wasted points for the sake of it. OK, it was a flippant comment, but it was NOT off-topic.
      It was on-topic to the parent post - about how people compete in almost anything that can be judged quality-wise.

      I've read the FAQ about karma now, and considering I was only here to make humerous comments (no matter how mildly) I now know not to bother. I'll always post AC from now on, the account just makes automatic reading at 5 more easy.

      If I ever get a chance to say something insightful in the five minutes between a new story appearing and it having 100s of comments already, maybe I'll get some karma back.
      Weird system!

      Good day to you.
      Chuff.

    13. Re:Depressing by HungWeiLo · · Score: 1

      I see your point.

      In my youth (and before my engineering life), I had been a musician. I had made loads of money playing music (jazz, classical) at weddings and at Nordstroms. I have even performed a solo on the stages of Carnegie Hall by the time I finished high school.

      I love playing music - and it was the competition that turned me off.

      There was a competition where it was quite competitive - mostly full of home-schooled kids with parents proverbially putting all their kids' eggs in one basket (the music industry) and pushing them for a life of IB, honors track, and Ivy League schools at all costs. After winning the state-wide contest for 3 years in a row, the parents of 2nd and 3rd place contestants actually put a petition together to reassign the adjudication team (whom I do not know or are related to) for next year's competition. In the competition the following year, they mercifully gave me 2nd place, and the complainee the 1st place.

      Hey, last I heard - I'm in a job doing something I like, and PLAYING MY MUSIC AT MY LEISURE AND AS MY HOBBY. The other person is now working as a sales clerk at an arts supply store and teach piano part-time to younger versions of herself.

      --
      There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
    14. Re:Depressing by Deraj+DeZine · · Score: 1

      So I'll take it that I'm the only person who agrees with the parent post? I see competitions all over the place (NCAA basketball, football, etc.) and in every single game there are people who try and use winning a competition to prove that they're better (in all senses of the word) than their competitors.

      People argue that both sides come away with learning experiences, but I think a more accurate depiction is that one side (the winning side) feels like they're superior in every way to their pitiful competition and the losing side comes away feeling like they're better but they were just cheated out of a win (by refs, umpires, judges, poor instructions, etc.) Often times both sides simply come away with bitter resentment of the other side. I even see posts of this type in response to this competition on Slashdot!

      Ultimately, a lot of people go to competitions for one reason: to beat people (socially, mentally, or physically). I personally find this to reflect poorly on competitions in general because they often foster this every-man-for-himself type of atmosphere.

      --
      True story.
    15. Re:Depressing by jinxidoru · · Score: 1

      I was present at the competition as a contestant. We won't talk about how well our team did. *whistles inconspiculously to himself* Along the same lines of why we have to make everything a competitive event, what bothered me was how the speakers kept refering to us as the most incredible programmers in the world. That got reallly tiring. Why do we contstantly have to be arbitrarily specifying one person or another as the best, and not just contribute our talents as best we can.

      I have no doubt that there are hundreds of other people who could easily have been sitting in my seat there in Prague. Granted, I'm glad they weren't because it sure was fun being in Prague. :)

    16. Re:Depressing by |<amikaze · · Score: 1

      That you were able to use a built in arbitrary precsion lib by switching languages takes all the fun out. =)

      Well, sorta... I personally had no Java experience, and had to rely on my two partners to do it. I basically sat back and worked out the other problems on paper while that was going on.

    17. Re:Depressing by unformed · · Score: 1

      I went to this last year (the 2003 World Finals) representing my school, and I can give you a couple good reasons why I love doing this:

      1) It -is- enjoyable. Animals are meant to compete, that's what we do. No to brag about it, but just to feel good, by either winning or watching other really good people one.
      2) By competing. you see how good you are compared to other people, which then drives you to get better. Take for example, someone who wants to get strong. It's going to be a lot harder for him to motivate himself if he's working out alone in his bedroom, than if he gets a workout buddy and goes to the gym. Why? Because when he's sees other people better than him, it makes him strive harder to get just as good. Which is the whole idea of Capitalism. Let the better products get more used. Of course, this doesn't always work out, but the idea is there.

      3) Being flown to Beverly Hill (last year) or the Czech Republic (this year) on an all-expenses-paid trip by your school is worth it on its own merits, disregarding the competiotion completely.

    18. Re:Depressing by unformed · · Score: 1

      If he's still bitter over a measly competition that happened TEN YEARS AGO, he's a whiny little bitch.

      Just because for him, the misprint scarred him for life, doesn't mean it's not fun for anybody else.

      Like skydiving. Fun as shit. For Me. Now maybe for you, it won't be because all the way down you'll be whining about how much you don't want to get hurt.

    19. Re:Depressing by Thuktun · · Score: 1

      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?

      What is the appeal of complaining about activities that other people enjoy but the complainer doesn't understand?

    20. Re:Depressing by Anonymous Coward · · Score: 0

      I also compete in this. We bring permutation, combination code. This is another common form of the problem. We also bring some code for graph theory. We have a class structure for navigating directed and undirected graphs and some code for minimum spanning trees and such. It all comes in pretty handy.

    21. Re:Depressing by DunbarTheInept · · Score: 1

      I never said I was scarred for life, liar.
      I just said I was bitter about it.
      There's a clear difference.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    22. Re:Depressing by DunbarTheInept · · Score: 1

      Please don't pretend to speak for me, and don't put words in my mouth that make me look like I support your point when I don't. I don't tolerate that kind of bull. My post you refer to EXPLICITLY states what it was that I'm bitter over, and it's the fact that the misprint in the handouts was at a really, really critical spot and they were unwilling to admit that this made the contest unfair. It was fairness that I'm annoyed about, not that the contest existed, nor that it was tough, nor that it was a tight deadline - (those were actually the fun parts).

      And, yes, learning how to handle the high-stress situation is extremely useful. The goal of the contest wasn't to produce robust reusable code. It was to challenge your ability to think on your toes.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    23. Re:Depressing by DunbarTheInept · · Score: 2, Informative


      If he is sore about losing then it's his problem.

      "unformed" lied when he said I didn't have fun.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    24. Re:Depressing by Anonymous Coward · · Score: 0

      The appeal! I met a chick who liked to program and we ended up going out for over two years. And a guy she used to go out with was also in the competition. And our team beat his. That's some kick-ass competition. Plus it was just fun: free food, free t-shirt, hang out with a bunch of people who like to program. And I got laid. Yay!

    25. Re:Depressing by Anonymous Coward · · Score: 0

      Whatever you say buddy.

    26. Re:Depressing by onelin · · Score: 1

      It has nothing to do with schools being best. I've been to two, and it's a blast! My groups didn't do too well, we ran into some stupid issues and the second time we didn't even have a full team, but regardless it was a great time taking a crack at the problems.

      I just went to an intramural competition at my school today and that was also fun and it renewed the good feelings coding and solving problems gives me.

  6. MIT folks, by Anonymous Coward · · Score: 0, Flamebait


    guess you guys are not so tough anymore?

    1. Re:MIT folks, by Anonymous Coward · · Score: 0

      If you look at the scores, they actuall scored higher than the winning team - they just solved one less problem.

    2. Re:MIT folks, by Anonymous Coward · · Score: 1, Informative

      Higher score is worse. Score is a measure of the time it took to complete the problems.

  7. Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 4, Interesting

    Good job to all who participated. This thing is *hard* because, while the problems are not insurmountable, you are only give 5 hours to do as many of them as you can. It's a contest in how good you are at predicting where the difficulty in the problem lays, and nailing that problem right away. Some of the problems look deceptively simple. It's the ones that immediately notice what it is about them that's not simple that do well.

    Way back when, I got to participate in one of these as an undergrad (it was 1994, if my memory is right). I've still got a little bit of a bitter memory over that one because a mistake in the givens of a problem caused our team to lose one of the problems - one which we would have gotten a HUGE score on otherwise. (Because it was done 'right'* in just 30 minutes, and your score is based on how much clock time was left after your solution is accepted.) (And that year the problems were really hard such that the winning team only got 3 of 7 done - they had accidentally given the undergrads the contest that was supposed to be for the grads - so missing one problem is a huge difference.)

    * - But what was wrong with it was based entirely on a misprint in the problems presented to us. The problem involved calculating big factorial numbers (among a few other things). The trick was to realize that no computer had a native number format that could store 300 factorial, and so you had to invent your own string-of-digits number primative that could handle N digits and multiply two numbers - given that N could be in the thousands - it's a simple problem, but the trick is to realize it is necessary to make up your own primitive. I realized it right away and wrote up the number primitive in a few minutes. But there was a problem - the givens in the problem description guaranteed that the test input will contain no factorials that result in more than FOO digits, where FOO was something in th 5,000's. This was the misprint - the biggest test they used actually contained something like FOO+200 digits, where FOO was in the 5,000's. There was no good way to check this given, since to do so required that we have a large-number multiplying routine - which is what this program was all about in the first place - which is why they gave it to you as a given.
    So when I allocated an array of size FOO+1 (for some overhead), my program kept crashing. Those people who got sloppy and didn't try to be efficient and just made a huge array of size 10,000 had their programs work just fine on the first attempt. Those people that tried believing the given in the problem had programs crashing. And the nature of the test environment was that we couldn't see our programs' responses to the test data, and the test results weren't allowed to tell us what really happened when the program was run - just that "program terminated prematurely.", and that's it - no information about the data that caused this, and no indication of where the program died. In our own tests everything worked fine because we weren't trying numbers larger than the givens PROMISED us the test data needed, but when the solution was submitted, the test data tried larger numbers than the given promised would be used, and thus the program crashed.

    I only know what happened because an announcement was made 4 hours and 30 minutes into the contest that there was a misprint and then the correction was given. Then I changed the size of the array, resubmitted, and it was right, after too many penalty points for failed submissions, and 4 hours of points wasted on THEIR mistake. Yeah, I'm still a bit bitter, because their attitude was that the contest was allegedly still "fair" because everyone had the same misprint on their handouts, and scores would not be adjusted for this mistake. I called "bullshit" because some people hadn't even tried that problem and therefore were unaffected by its misprint, and people who had been sloppy and picked a huge array were also unaffected by the misprint.

    Our team had a chance of pl

    --

    Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    1. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 1, Funny

      dude, get over it!

    2. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 0

      I agree. That was 10 years ago. I wonder what you'd
      do if a girl left you!!! Yike!!!

      - Moomin

    3. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 1, Funny

      but the trick is to realize it is necessary to make up your own primitive.

      ... I hope this is not too difficult to realize for anyone who has had at least a minimal programming experience ...

    4. Re:Congrats to the winners, and bitter memories by smiths2 · · Score: 5, Insightful

      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.

    5. Re:Congrats to the winners, and bitter memories by pkhuong · · Score: 4, Interesting

      Being a Smug Lisp Weenie, i'd like to point out that only lower level languages don't have support for arbitrary-size integers :p

      [54]> (! 300)
      [anti lameness filter]
      306057512216440636035370461297 268629388588804173576999416776 74125947653317671686
      7465515291422477573349939147 888 7017263688642639077590031542268 429279069745598412
      254769302719546040080122157762 5 2176854255965356903506788725264 321896264299365204
      576448830388909753943489625436 0 5322598077652127082243763944912 012867867536830571
      229368194364995646049816645022 7 7165001851765464693401122260347 297240663332585835
      068701501697941688503537521375 5 4910289126407157154830282284937 952636580145235233
      156936482233436799254594095276 8 2060806223281238738388081704960 000000000000000000
      000000000000000000000000000000 0 000000000000000000000000

      That's on Clisp 2.31, btw.

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    6. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 0

      if (INPUT > MY_HARD_CODED_CONSTANT) print "You said numbers wouldnt be this big!!"

    7. Re:Congrats to the winners, and bitter memories by ghamerly · · Score: 5, Interesting

      I was a contestant at the ACM world finals in 1999 and 2000, and have been a coach since.

      In 1999, we had a similar problem to what you just described -- the test data did not match the problem description. Many teams that followed the description exactly were not getting their programs accepted, while many other that simply accomodated for the flaw (without knowing that they were doing it) got their programs accepted.

      But you have a recourse in this contest, which I remember the Waterloo team (sitting across from us) used: you can intentionally crash your program (using assert()) if an assumption you make about the program fails. If it crashes, you know that your assumptions are not holding. This is what Waterloo did, and they found out that the their program was failing because of a mis-specification.

      As others have said, the ACM contest is about time-management, teamwork, good decision making, and clever and fault-tolerant programming. I understand your frustration (I'm right there with you), but I think the lesson to be learned is how to work together solve the problem, not how to hold a grudge.

    8. Re:Congrats to the winners, and bitter memories by ghamerly · · Score: 1

      Hate to reply to my own post... but I need to make a correction to the dates.

      I meant the world finals that occurred in spring 2000 and spring 2001. The regional competitions were in 1999 and 2000, respectively, which were the dates I wrote above... blargh.

    9. Re:Congrats to the winners, and bitter memories by tormentae+agent · · Score: 1
      they put in some tolerance for errors

      Ummmm...sure. In 1994 efficiency in resource usage was still a pretty important thing if I remember right. Even then, in a competition you program towards specs and specs only. Allowing faults in specs to influence who wins is akin to taking the point values of each team, roll a die for each of them, and multiply this by their respective scores.

      One shouldn't be docked points for following the spirit, rules and the specs of something like this.

    10. Re:Congrats to the winners, and bitter memories by fuzzy12345 · · Score: 1
      (defun fact (n)
      (cond ((= n 1) 1)
      (t (* n (fact (1- n))))))
      (print (fact 300))
      3060575122164406360353704612972686293885888 04173576999416776741259476533176716867465515291422 47757334993914788870172636886426390775900315422684 29279069745598412254769302719546040080122157762521 76854255965356903506788725264321896264299365204576 44883038890975394348962543605322598077652127082243 76394491201286786753683057122936819436499564604981 66450227716500185176546469340112226034729724066333 25858350687015016979416885035375213755491028912640 71571548302822849379526365801452352331569364822334 36799254594095276820608062232812387383880817049600 00000000000000000000000000000000000000000000000000 0000000000000000000000
      (print (fact 6000))
      2683999765726739596116316...
      Violates silly Slashdot compression filter. But it prints, baby, it prints.
      --

      Everybody's a libertarian 'till their neighbour's becomes a crack house.
    11. Re:Congrats to the winners, and bitter memories by Kainaw · · Score: 2, Interesting

      At least they announced the mistake and you got it correct eventually. I was frustrated at one that I went to, so I took a program that kept getting 'runtime error' from the judges and gave it to another team. They submitted it and got it correct. We resubmitted it and got 'runtime error' again.

      I left with this opinion of the ACM Programming Competition: It is a college event. College is about learning. What do you learn at that event? Nothing. If you get a problem wrong, it is wrong. There is nothing else you can know. You never get to see a working solution. You never get to see the judges data. In any other competition, from professional sports to playing blackjack in Las Vegas, you see why you lost. You can attempt to improve.

      I confronted the head of the Southeastern United States ACM Competition about this and she said that the judges cannot release any information about the problems because it may be discovered that they made a mistake. WTF!? Referees in the NFL make mistakes all the time - even with instant replay, but they are adult enough to admit it after the game and go on with their job. Apparently the judges for the ACM competitions are far too immature to handle scrutiny. At any rate, I cancelled my ACM membership and pushed to have our college's ACM chapter drop any and all relations with the ACM, simply becoming a local computer club.

      --
      The previous comment is purposely vague and generalized, but all of the facts are completely true.
    12. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 0

      The factorial function is not in the Common Lisp standard, it is a CLISP extension, but all Lisps support integers of arbitrary size, and type conversion betwen integral, float and complex numbers :-)

      Another Smug Lisp Weenie.

    13. Re:Congrats to the winners, and bitter memories by Dr.+Pain · · Score: 3, Informative

      You're bitter for that?

      I'm bitter because when my team won the championship (UCLA, 1989), there were no prizes! We got a $500 scholarship for the department.

      At any rate, there are worse ways to get screwed in the contest. The following year, when we defended our title, we never made it out of the regionals. That year, solutions were submitted on floppies and tested & scored automatically. Turned out that one of the floppies we were given already had a file on it, and unbeknownst to us, the scoring program kept testing that file. We discovered the problem just as the contest was ending, and the judges not only had no sympathy for us, they refused to test our program and score it as submitted at the end of the contest.

      That year, the prizes included laptops for all the members of the winning team.

      The next year, they stopped letting graduate students compete :-).

      I've wondered on and off if the ACM will ever hold a contest between all the past champions. Not that I've programmed in years, mind you.

      -- Scott

    14. Re:Congrats to the winners, and bitter memories by kirinyaga · · Score: 1
      1st rule of protocol/format dev is : always expect outside data to violate the standard, never permit inside data to do so.
      Or : be very strict when writing/sending, be very lenient when reading/receiving.
      There is such an advice in all the RFCs. Lots of buffer override exploits work because the programmers didn't respect this paradigm.

      And this is something you should also do with function parameters, object state, etc...

      --
      Kirinyaga
    15. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 1, Informative

      Being a Smug Lisp Weenie, i'd like to point out that only lower level languages don't have support for arbitrary-size integers :p

      On the other hand, many BASICs *do*. So don't go assuming it means a language is any good. ;)

      (As a smug ocaml user, I'd like to point out that my language of choice not only provides the option of arbitrary-precision arithmetic, but also the option of turning it off for efficiency purposes. And (it (doesn't (have (so (many (parentheses (either.))))))))

    16. Re:Congrats to the winners, and bitter memories by Anonymous Coward · · Score: 0
      Compare your unreadable
      (defun fact (n)
      (cond ((= n 1) 1)
      (t (* n (fact (1- n))))))
      with the elegant and intuitive
      fac n = product [1..n]
      Haskell > *
    17. Re:Congrats to the winners, and bitter memories by asdfghjklqwertyuiop · · Score: 2, Interesting

      I totally agree. I was in this contest one year, and it was when it was too late that I realized that the key to being successful in this contest is having the ability to pick out the easy problems and do them first.

      When we were in this my team wasted hours poking away at the hard ones first, which we didn't realize were the hardest ones there until we already wasted time on them. In the last 2 hours we finnally had working algorithms on the easiest ones, but then the bottleneck was access to the workstaion. And there's a lot of pressure in the last hour. You're trying to debug your program and get those critical points, and all around you people are cheering when they get one done, chatting, and the lab is generally very noisy and crowded. A difficult environment to work in if you find yourself scrambling at the last minute.

      We practiced for this by having our coach pick out simple to moderate problems, one at a time and we did them as a team. But in retrospect this was totally not the right way to do it. What we should have done was have our coach pick out 7 problems of different difficulty, and we should have picked out the easiest one, confirmed with coach, and then just plan out a solution.

      If you are a decent programmer and did well in your school's advanced structures & algrotihms class then you already have the programming skill it takes to do better than 75% of the other teams in the first competion. What matters is being able to pick out the easiest ones and do them first so you can manage your time well and not be scrambling towards the end.

    18. Re:Congrats to the winners, and bitter memories by thenumberone · · Score: 1

      To: Dunbartheinept
      Are you from Dunbar High School in Fort Worth?

      I seem to remember this exact situation happening to fellow students, right around 94, and this was a common practice problem for our CS class.

      I do remember the hardest part of this program was multiplying two arrays each size n. I seem to remember that we had a very quick algorithms to square a number in large array and add two arrays. I remember solving it with these in a manner of factorial=n(n+1)=n^2+n.

      Anyway, those were good times.
      David
      davidmac@mail.utexas.edu

    19. Re:Congrats to the winners, and bitter memories by gardyloo · · Score: 1

      1st rule of protocol/format dev is: do NOT talk about protocol/format dev!

    20. Re:Congrats to the winners, and bitter memories by pkhuong · · Score: 1

      Re optimisation: So does CL.

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    21. Re:Congrats to the winners, and bitter memories by pkhuong · · Score: 1

      (defun fact (n)
      (* (iota n)))

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    22. Re:Congrats to the winners, and bitter memories by Sax+Maniac · · Score: 1
      the test data did not match the problem description

      In real life, this is always case, except for the cases when you get no problem description at all, which is usually the case.

      Example:

      Customer: This is wrong! The program should (waves hands wildly and grunts)!

      That is your spec. I think the folks running the contest are smarter than you give credit.

      --
      I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
    23. Re:Congrats to the winners, and bitter memories by drix · · Score: 1

      I like that you've posted 5 comments on Slashdot in four years, and fully 40% of them are complaining about this one incident. That guy must have really pissed you off :)

      PS What are you doing with a grad. degree (assumed PhD) in CS and not programming?

      --

      I think there is a world market for maybe five personal web logs.
    24. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      I would assume you bothered to check your program against the maximum input (to check for time factors).

      Of course. And if you read my post, you'd know that the givens as to how large the "maximum input" was was precisely where the mistake in the givens was. I did test for the maximum case they claimed the test data would contiain. But that claim was false.


      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.

      I didn't forget. It was just irrelevant to my point.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    25. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      That is your spec. I think the folks running the contest are smarter than you give credit.

      No, because the misprint was not deliberate.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    26. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      At the time, the contest specified that you MUST use either Pascal or C. Partly this is because they wanted the problems to be equally difficult for everyone, and partly so they could control exactly what libraries were available. (Some of the things the problems asked you to solve are in commonly available libraries.)

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    27. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      One of the really annoying things about how they run the contest is how they firewall off the test environment such that you can never figure out why your program didn't work. The judges are only allowed to give you one of the following five responses (This is from memory, I could be wrong):

      1 - didn't run at all (syntax problems, or linking problems, or something like that)

      2 - terminated before processing all input (usually a crash, but could be just an exit(0);)

      3 - took longer than X minutes and was thus assumed to be infinitely hanging (where X was told to you ahead of time so you knew how long your program had - it was really large. The point wasn't to force you to write fast code, but rather that they had to have some way to define a cutoff where they would assume you're in an infinite loop - since there's no way to really tell with certainty - NP completeness and all that.

      4 - finished, but gave wrong answers.

      5 - finished, and was correct.

      That's it. That's *all* you could ever learn about your program run when you submitted it to the judges. They were not allowed to tell anything else, and you were not allowed to see the output of your program. (The theory was that you could cheat and have your first program do nothing more than echo what the test data was, and then your second attempt could hardcode a solution to just that test data and no other.)

      Because of this setup, when the givens in the handout are lying to you, there is NO way to detect this. We had a solution that worked according to the givens in the problem, but the test data violated those givens and due to the setup as explained above, there's no way to tell that this is what is happening.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    28. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      intentionally crash your program (using assert()) if an assumption you make about the program fails.

      In this case that wouldn't have helped. Regardless of if an assert() fails or if the program crashes because it blew past an array, the result that we could see would look the same - the standard ACM judge response would just be "program terminated before processing all input", and you wouldn't get to see the output of the run, so you can't tell if it's your assert() that's causing the crash or not.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    29. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      Lisp was not an allowed language in that contest. It would have made a lot of the problems too easy.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    30. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      I totally agree. I was in this contest one year, and it was when it was too late that I realized that the key to being successful in this contest is having the ability to pick out the easy problems and do them first.

      Actually, that IS supposed to be part of the contest. They explain carefully how the scoring works, and even point out that this means it's best to identify those problems you think are fastest and work on them first.

      The ability to detect that the description of the problem is defining a thorny problem that's harder than it looks *is* part of what you're supposed to be good at. The ability to detect that the description of the problem is actually LYING to you, on the other hand, isn't suppossed to be part of the contest.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    31. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      Yeah, but this was supposed to be the one really easy problem in the mix. They do throw one in there that is quickly do-able - and part of the contest is identifying which one that is and doing it first. But that misprint turned it into a very hard problem, since you had to have the realization that the contest creators are the ones in error instead of you.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    32. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      Spoken like someone who never tried solving 7 time consuming problems in a contest that lasts only 5 hours, and all three team members only get one computer to share to type on. Under those circumastances if you distrust the givens in the problem, you never even get one problem done.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    33. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      To: Dunbartheinept
      Are you from Dunbar High School in Fort Worth?

      No. (geek alert) Dunbar is a halfling thief character I used to play back in those college days. The title "The Inept" was given to me by other players due to the fact that for three game sessions straight I never once rolled a number smaller than 75% on my percentiles, and thus failed absolutley every attempt to be sneaky. Entire campaign arcs were caused by that string of bad luck.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    34. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      If you did that, then this is the only response you'd get back from the judges from that run:

      - program produced incorrect output.

      Now try to decipher, from that alone, that this was caused by your numbers too big print statement instead of by something else in the code.

      The problem with the ACM contest is that it robs you of ANY sort of feedback, and thus when there is a discrepency between the handout's description of things and the actual test the judges run, you can't tell that that's what's happeneing. And it's not just misprints like this was. It could be the input data format (seeing spaces in the handout where there aren't any in the real input, or a strange exception case like using 8-bit extended ascii in the test data when the examples shown in the handout were all standard 7-bit ascii, and nothing was said one way or the other about it.)

      In their attempt to rob cheaters of their tool to peek at the test data and hardcode to it, they also robbed programmers of one of the primary means of detecting that the specs don't match reality - looking at actual examples of how the users are trying to use the program.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    35. Re:Congrats to the winners, and bitter memories by asdfghjklqwertyuiop · · Score: 1

      Actually, that IS supposed to be part of the contest. They explain carefully how the scoring works, and even point out that this means it's best to identify those problems you think are fastest and work on them first.

      I know that. We knew before hand that it would be best to do the easiest ones first. What we didn't know was that this ability to identify in and of itself is a crucial skill. You shouldn't just practice solving programming problems, you should pratice identifying problems to solve.

      We didn't realize before hand how hard it would be to do this and how deceptive some of the problems could be.

      The ability to detect that the description of the problem is actually LYING to you, on the other hand, isn't suppossed to be part of the contest.

      How did any of the descriptions of the problems actually lie? You couldn't tell what was easy or hard by the descriptions, but I don't recall any descriptions that flat out lied....

    36. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1


      How did any of the descriptions of the problems actually lie?

      Did you read my post that started this? It's right in there. The problem stated, as a given, that the max number of digits we would have to calculate for was FOO, when the input they used actually contained some data requiring something like FOO+200 digits. My first submitted program to solve it was perfect - except that it needed a bigger array than the givens claimed I would need.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    37. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      Dude, learn what "a little bit" means, as in my original post where I said "a little bit of a bitter memory".

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    38. Re:Congrats to the winners, and bitter memories by gvc · · Score: 1

      ACM sponsors the contest but does not run it. The finals and general regional framework are set by a committee headed by Bill Poucher at Baylor University.

      The regional directors have a fair amount of autonomy as to how they run the contest. Several regions (and the finals) never release their judging data. Many others publish the judging data and/or correct solutions to the problems. I am strongly in favour of the latter approach and have argued its merits (without success) to the powers that be. In response I have heard arguments about "when it's over it's over" but none have convinced me. I can come to no other conclusion than that those judges who withold data do so due to fear of scrutiny.

      In any event you should not tar all regions with the same brush, nor should you blame ACM. They sponsor a great contest, albeit one that could be improved.

    39. Re:Congrats to the winners, and bitter memories by wcbarksdale · · Score: 1

      In most competitions, including the World Finals, the judges will issue "time limit exceeded" and "run-time error", which can be caused by an infinite loop and a segfault, for instance. But this year the judges stated that intentionally crashing your program would be grounds for disqualification (I am almost certain this policy is new).

    40. Re:Congrats to the winners, and bitter memories by DunbarTheInept · · Score: 1

      Right but my point is that the suggestion in the post, of using an assert(), wouldn't have helped (even if it was allowed) because BOTH intentional and unintentional program crashes look identical in the judge's report that you can see.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    41. Re:Congrats to the winners, and bitter memories by ghamerly · · Score: 1

      At the ACM 2000 world finals contest (the one I originally posted about), it was allowed to use an assert() to intentionally crash your program. It's interesting that they may be disabling this in future contests.

      Contrary to the parent, you can use assert to help you. You can be *almost* 100% sure that your assert is crashing the program by doing this: submit the program twice, once with the assert, once without. If only the program with the assert (and no other changes) crashes, then your assert has given you some useful information about the guard on the assert.

  8. It runs Linux! by spellraiser · · Score: 5, Informative

    Many slashdotters will probably be pleased to know that the contest's environment OS was Red Hat Linux 9.0.

    Full environment specs here.

    --
    I hear there's rumors on the Slashdots
    1. Re:It runs Linux! by |<amikaze · · Score: 1

      At regionals last year, we did it all on some flavour of Solaris. It was decent though.

    2. Re:It runs Linux! by Anonymous Coward · · Score: 0

      There's a rather unfortunate tale of a regional environment that ran OSX this year. Unfortunately the PC^2 software is notorious for its incredibly poor quality, and a distributed deadlock surfaced the day before the contest (during the practice round). The bug had never shown itself before because the live network connection across multiple sites for judging and scoreboard maintainance hadn't been tested previously. The powers that be decided to revert to an older version of PC^2 overnight. That version had never been tested on Macs before....

      Needless to say a careless error during the overnight porting frenzy caused contestents at the Carnegie Mellon site to have no access to standard out for the first 80 minutes of the contest. The best team at that site, the CMU Dragons (who also got to enjoy a mid-contest frozen computer), took only tenth in the region. That was a crazy day.

    3. Re:It runs Linux! by napir · · Score: 1

      It seems like PC^2 is only moderately stable if John Clevinger is setting it up. Though at finals the first time we tried to start it, it crashed the entire X server, which was a lot of fun.

      I was wondering why CMU wasn't there this year.

  9. Saint-Petersburg renamings by Anonymous Coward · · Score: 2, Informative

    1703-1914: Saint-Petersburg (or Sankt-Petersburg in German)
    1914-1924: Petrograd
    1924-1991: Leningrad
    1991-....: Saint-Petersburg

    1. Re:Saint-Petersburg renamings by aralin · · Score: 1

      Well, it was called "Stalingrad" briefly during and few years after the WW2, I think... at least I still remember from history calling one battle: Battle of Stalingrad... (a blockade of the city by Germans partly broken, when the water on nearby lake froze and people could walk/drive over it.)

      --
      If programs would be read like poetry, most programmers would be Vogons.
    2. Re:Saint-Petersburg renamings by BigGerman · · Score: 2, Informative

      wrong. Stalingrad (Volgograd) is about 1000km SE on the Volga river

    3. Re:Saint-Petersburg renamings by Anonymous Coward · · Score: 0

      It's always interesting to see what the German school system concentrates on teaching....

      We're watching you, pal.

    4. Re:Saint-Petersburg renamings by conway · · Score: 1

      Tha battle of Stalingrad (formerly, and now, Volgograd) was the turning point of WW2 for Russia. It is nowhere near Leningrad (see map here. Look for Volgograd aka Stalingrad - in the south, and St Petersburg aka Lenigrad in the north!)
      The Germans advanced all the way to Stalingrad, with Russians retreating, and maintaining a sort of scorched-earth policy. At the epic battle of Stalingrad, (winter of 1942-43) the tides turned, and Russians started taking back territory, eventually marching all the way to Berlin.

  10. Congratulations to the Russians by azaris · · Score: 5, Interesting

    It comes as no surprise that Russian teams did especially well considering most of the problems relied heavily on mathematical understanding. It's perhaps the one country in the world where logic and math have been given their rightful place and respect in education.

    1. Re:Congratulations to the Russians by Anonymous Coward · · Score: 1, Insightful
      It's also interesting to note that two guys of the MIT's team (which was the best US team) are actually Romanians nationals:

      Octavian-Daniel Dumitran (*)

      Reid Barton

      Victor Costan (*)

    2. Re:Congratulations to the Russians by Khelder · · Score: 1

      The two years I participated in this competition, most of the problems weren't really mathematical. Out of about 8 problems given, maybe 1 or two would involve hard math.

      Not that the winners shouldn't be congratulated--it's an incredibly challenging competition--just that it doesn't have that much to do with math.

    3. Re:Congratulations to the Russians by kryptkpr · · Score: 4, Interesting

      I'm currently taking an undergrand in Computer Eengineering here in Canada, and just the other day I was discussing with my father (who had done an Engineering degree in communist Russia) the differences between the two systems.

      He said that in Canada, much more focus is placed upon raw math then in Russia, where a lot of his time (11 or 12 courses!) was wasted on things like History of the Party, Marxist Theory, etc..

      The main difference in my experience (which is rather short; I left the country at 8, so I was just finishing grade 2) was that the _intensity_ of the education was much higher in Russia, not in the higher learning institutions, but in the normal (for kids aged ~7 - 14) school system. We had homework, every single day, and it was routinely checked. Not only that, but if your nails were not cut, if your hair was not combed, you'd be sent him in shame.

      What I learned in the first 2 years of education in Russia lasted me through until about Grade 6 in Canada's public eduication system. I think the result of this is that by the time you hit Post-Secondary your mind is already working at full capacity. In Canada at least, I went through the entire public system completely braindead, and only now that I'm in second year at University do I really feel like I'm being challenged (maybe a little too much.. should have been better spread out over the years I wasted in high school!)

      --
      DJ kRYPT's Free MP3s!
    4. Re:Congratulations to the Russians by Anonymous Coward · · Score: 0

      Congratulations also to the SouthAmerican winners, Universidad de Palermo (Buenos Aires), Argentina

    5. Re:Congratulations to the Russians by beforewisdom · · Score: 1

      And look what wonderful shape their country is in :)

    6. Re:Congratulations to the Russians by conway · · Score: 3, Informative

      An excellent point!
      I was also comparing what I had learned in college with my father's experience (PhD from Russia), and by the end of undergraduate college its pretty even. Where the un-even-ness is, is the level of education in elementary and high school. In Russia you would know Calculus, Chemistry, Phyiscs and Biology by the time you leave high school, in the US, you'd be lucky if you take one.
      However, in college you are forced to quickly catch up on all of those things, which places you in a lot of stress, and since it is learned much quicker, it is also quicker forgotten.
      The education level of the elementary and high-school systems in the US needs a lot of work.

    7. Re:Congratulations to the Russians by pen · · Score: 2, Informative

      I've had a similar experience in the U.S. (Pennsylvania, specifically.) I finished 5 grades in the USSR (the part that is now Ukraine.) I started 6th grade here in the U.S., and up until 10th grade, everything that I was being taught was something that I had already learned. (Obviously, this excludes some parts of U.S.-specific subjects, like English.)

    8. Re:Congratulations to the Russians by Slashamatic · · Score: 1

      I have a Russian wife and two kids from post-Soviet Russia. I brought them to Europe and my new son, aged 16 was given a competance test by the authorities in Germany where we were living. The maths test was so simple for him that he was puzzles lest there was some trick. No, he was given simple arithmetic of fractions which he had learned at about 11 in Russia. Talking to the lady who supervised these tests, this wasn't unusual and it was known that the Russians excelled at mathematical r scientific subjects. The only reason they didn't at other subjects was because of the German language, which isn't easy in written form.

  11. Why they changed it... by Anonymous Coward · · Score: 1, Funny

    I can't say.

    People just liked it better that way

  12. Were the problems really tough? by sujan · · Score: 0

    1 St Petersburg Institute of Fine Mechanics and Optics 7 1204
    2 KTH - Royal Institute of Technology 6 1118
    3 Belarusian State University 6 1157
    4 Perm State University 6 1255
    5 Massachusetts Institute of Technology 6 1312
    6 National Taiwan University 5 773
    7 California Institute of Technology 5 818
    8 Izhevsk State Technical University 5 930
    9 Harvard University 5 937
    10 Warsaw University 5 938
    11 ZhongShan (Sun Yat-sen) University 5 954
    12 Queen's University 5 965
    13 Shanghai Jiaotong University 5
    13 Stanford University 5
    15 Fudan University 4
    15 Korea Advanced Institute of Science and Technology 4
    15 Kyrgyz-Russian Slavic University 4
    15 Nizhny Novgorod State University 4
    15 Seoul National University 4
    15 Universitat Politecnica de Catalunya 4
    15 University of British Columbia 4
    15 University of Calgary 4
    15 University of Cape Town 4
    15 University of New South Wales 4
    15 University of Waterloo 4
    15 Zhejiang University 4
    27 Albert Einstein University Ulm 3
    27 Amirkabir University of Technology 3
    27 Bangladesh University of Engineering & Technology 3
    27 Charles University Prague 3
    27 Donghua University 3
    27 Jagiellonian University - Krakow 3
    27 Nanyang Technological University 3
    27 Norwegian University of Science and Technology 3
    27 Novosibirsk State University 3
    27 Petrozavodsk State University 3
    27 St. Petersburg State University 3
    27 Tokyo Institute of Technology 3
    27 University of Michigan - Ann Arbor 3
    27 University of Otago 3
    27 University of Tartu 3
    27 University of Texas at Austin 3
    27 Yonsei University 3

    I'd like to see the solution for those.

    1. Re:Were the problems really tough? by Cryect · · Score: 1

      Not that the problems were tough to figure out how to solve. It was more implementing of what mainly was a bunch of geometry problems takes real long in comparison to most other types.

    2. Re:Were the problems really tough? by DunbarTheInept · · Score: 1

      The problems aren't overly tough, but you are given seven or eight of them to solve in just five hours. It's the time crunch that makes it hard. Anyone can get a right solution eventually, but how many can you belt out as fast as possible - that's the challenge. The contest is designed so that even the winning team doesn't have the time to get all of the problems right.

      In general, it's a lot of fun. As I stated elsewhere here, the one time I tried it there was a mistake in the givens that made things unfair, but in general it's a fun idea. They just need to be a lot more careful with their problem handouts. Perhaps they should do some trial runs with test students first before using the problems for real.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  13. Is this a surprise to anyone? by 192939495969798999 · · Score: 1

    I can't imagine this would be a surprise to anyone, considering that nearly every russian programmer I've met was awesome... of course, perhaps it's because they were "awesome" that they are in the USA now!

    --
    stuff |
  14. Congrats to KTH! by bigbaloney · · Score: 1

    A fine performance by KTH from Sweden. By the way, where is the Chalmers team? ;-)

    1. Re:Congrats to KTH! by Anonymous Coward · · Score: 0

      And no teams from Finland!!! I once asked about these competitions from one of the profs at HUT (Helsinki University och Technology) and there really didn't seem to be any interest...

  15. MIT has the highest score by Flammon · · Score: 3, Interesting

    If anyone knows more about what happened to MIT, I would be interested to know. MIT's score is higher than the other competitors so I wonder which of the problems they struggled on.

    1. Re:MIT has the highest score by aflorenc · · Score: 5, Informative

      (I'm one of the Directors of the contest, so I know of what I speak.) "Score" is a terrible title. It should be "penalty". The teams are ranked first by the number of problems they got correct. Thus St. P's came in first, because they were the only team to get 7 problems correct. Among the four teams that got 6 problems correct, they are ranked from smallest penalty (KTH) to highest (MIT). Penalty is computed as the total cumulative time it takes you to solve a problem. So if you solve one problem after 30 minutes and a second problem after 30 additional minutes, your penalty is 90 minutes (30 from the first problem, 60 from the second). In addition, you are given 20 minutes of extra penalty for each incorrect submission to a problem that you eventually get correct.

    2. Re:MIT has the highest score by Anonymous Coward · · Score: 0

      I know MIT had some major problems and multiple submissions on one of the "easier" problems (as determined by how many teams got the problem), problem H (Tree-lined Streets). At least they ended up getting the problem after flailing at it, unlike us (though we still managed to get three problems).

  16. Too bad, but why are you dissing everyone else? by putaro · · Score: 4, Interesting

    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.

    I do think that they should have re-adjusted for the misprint, but it's pretty small of you to simply denigrate everyone else's performance. Perhaps they had been exposed to some other ways of working with large numbers than allocating arrays to the max precision. When I was in high school we had a pi calculator we used to run using DEC BASIC's arbitrary precision string arithmetic (this was before high-res graphics or we would probably have been wasting our time on fractals). I'm sure if I'd been given the problem I probably would have done something involving strings which probably would have worked.

    1. Re:Too bad, but why are you dissing everyone else? by sydneyfong · · Score: 2, Insightful

      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.
    2. Re:Too bad, but why are you dissing everyone else? by DunbarTheInept · · Score: 1

      You are right that making an arbitrary-length routine would not have been sloppy - but given the way the contest works, getting the solution done in the fastest possible time gets you a larger score, and there are more problems given than you can solve in the time allotted, so people wouldn't bother - espeically in a language like Pascal (not my choice, but the other chioce was C and one of the team memners didn't know C) where making dynamic-length arrays is against the religiuously typecast nature of the language.

      So, the point is, that the ones who did it fast all did it the fixed-length way, and in THAT, it is sloppy to just make a gigantic array.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  17. Interesting problems by Blue23 · · Score: 4, Interesting

    One of the things I always liked about the ACM problems, both now and when I was competing, was that they were fun challenges. Very few "real world examples", instead they always made your head spin a few times and then you could dive right in.

    You had a limited amount of time, and when I was going it only a single terminal so only one team member could actually code at once. So optimizing for time to code was a huge factor. But it also meant that you could afford to specialize a bit, have some out-of-the box thinkers who may be great algorethmically but not the best with real code, and a dedicated coder to implement.

    I remember one year we had a Mechanical Engineer on the team who had a completely different approach. We were trying to work out how to do one problem correctly mathmatically and he mentioned that they only wanted two significant digits and suggested an iterative solution to the math problem that worked beautifully.

    Hats off to all the competitors.

    Cheers,
    =Blue(23)

    --
    LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
  18. Russian Translation by Anonymous Coward · · Score: 0

    actually translated thats:

    university of information technology, mechanics, and optics

  19. mod parent down- what a stupid post by Anonymous Coward · · Score: 0

    If you don't like competition, then don't participate. Simple as that. Nobody's shoving it down your throat. Stupid illiterate.

  20. Re:Hippie... by gowen · · Score: 1

    You may have been modded Flamebait, but I think thats pretty damn funny. I guess the mods don't get the joke in the last sentence...

    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  21. Problem Fixed... by CompWerks · · Score: 0

    Kill Carl

    --
    If you can read this sig - the bitch fell off.
  22. Re:Congrats to the winners by EdmundSS · · Score: 1

    I empathise with your predicament.

    We had a similar thing happen to us in the pre-Regionals round (a model solution was wrong!). However, the judges subsequently recognised the problem and allowed us into the regionals (in the days before the South Pacific had its own region) -- which we won (end of 1990). Ahhh, the good old days...

  23. Comment removed by account_deleted · · Score: 2, Interesting

    Comment removed based on user account deletion

  24. Why this is hard by Khelder · · Score: 4, Interesting

    Some posts already mention some reasons why this is a hard contest, but I thought I'd summarize and add a couple more:

    * You have more problems than your team can possibly do in the time allotted. When I did it, the winners got 4 or 5 out of 8. There's a lot of pressure to work fast.

    * All the problems are tricky, but there is definite variance in their difficulty. Since your score is based not only on how many you get right, but how fast you get them right, you have to figure out which problems are the easiest and do them first. Starting with a problem that looks easy but turns out not to be can really hose you.

    * The answer evaluation is harsh. You submit a solution program and if it's not correct you get back a response like: "insufficient output", "too much output", or simply "incorrect output." Figuring out why the judges say your program doesn't work when you think it does can be really frustrating.

    * There are multiple people on the team (4 my first time, 3 my second and I think since (but someone correct me if that's no the case)) and only one computer, so managing that resource is crucial.

    I don't know how much the contest proves, or how much stock employers, say, should put in it, but it was fun to do.

    1. Re:Why this is hard by Bull999999 · · Score: 2, Insightful

      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
  25. Humor in problem set D by Cyclopedian · · Score: 1
    Prague's reputation for being tough on cryptographic protocols hasn't stopped the part-time amateur cryptographer and full-time nutcase, Immanuel Kant -DeWitt (known to his friends as "I. Kant -DeWitt") [--Emphasis mine]

    I wonder if many of the international teams appreciated some of the subtle humor in these problem sets, especially this. =)

    -Cyc

    1. Re:Humor in problem set D by sydneyfong · · Score: 1

      Slashdotters are gonna love this then.

      http://www.ioi2003.org/ioitasks/code.pdf

      This is a task from an International programming competition (like a secondary school version of ACM). Unfortunately, I guess I failed as a slashdotter as I scored ZERO (my only zero for all six tasks) for that particular problem. I repent.

      --
      Don't quote me on this.
  26. Non-PC Question Here... by saudadelinux · · Score: 3, Interesting

    Looking at these results, it would seem that outsourcing to Russia or Taiwan, or keep jobs here, would be more sensible. The IITs only got honorable mention. Is it simply the money?

    --
    I didn't think the house band in Hell would play this badly.
    1. Re:Non-PC Question Here... by FigWig · · Score: 0

      Russians are brilliant but a huge pain in the ass to manage. Indians are competent, hard working, and tend to be more submissive and thus easier to manage.

      Anyway, great computer scientists != great software engineer.

      --
      Scuttlemonkey is a troll
    2. Re:Non-PC Question Here... by Ryan+Amos · · Score: 2, Insightful

      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.

  27. South Dakota School Of Mines by SplunkDotNet · · Score: 1

    This is a selfless post I guess you could say. But I would just like to use this time to conrgradulate my friends that I see every day. While many of you may think South Dakota is still cowboys and Native Americans. The School of Mines and Technology programming teams represent!

    1. Re:South Dakota School Of Mines by darthvinh · · Score: 1

      University of Michigan didn't fair to well, being in 27th position.. We'll have a better showing next year..

  28. Similar story by kristoferkarlsson · · Score: 3, Interesting

    I was at NWERC '03 in Lund and one of the problems (the one with the train system) had a badly formed input but since our team assumed at the input was formatted correctly (which was guaranteed by the problem spec.) our program crashed. We got it right on the first try but we spent a lot of time looking for buggy code and searching for reasons to crash.

    We wasted lots of time and didn't complete any more problems but we were close to solve a problem in the last few minutes so we may have gotten two problems solved instead of one if the spec had been correct.

    Interestingly enough, the team that won (and came second in the world finals (congrats to Threeheaded monkey!)) had the same problem but also deduced that the input was flawed so they notified the judges. I suppose we would have gotten zero problems solved if it hadn't been for them.

    The difference between our stories is that we wouldn't have chance at the top 10 anyway.

  29. Optimization by Anonymous Coward · · Score: 0

    Always remember :
    "Premature Optimization is the Root of All Evil"

  30. Error checking. by some+guy+I+know · · Score: 2, Insightful

    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
    1. Re:Error checking. by fuzzy12345 · · Score: 1
      Dude, the OP was working against the clock to solve a specific problem. I merely pointed out that, had he been using a better language to begin with, he wouldn't have had to spend all his time implementing a bignum library.

      Now if the problem had called for gracefully handling bad input, I'd have put it in. As it is, my environment invokes the debugger for silly input, where the OP's probably would have crashed:

      (print (fact -1))
      Control stack overflow
      [Condition of type KERNEL:STACK-OVERFLOW]

      Restarts:
      0: [ABORT] Return to SLIME toplevel.
      1: [ABORT] Return to Top-Level.

      Backtrace:
      0: (KERNEL:YELLOW-ZONE-HIT)
      1: ("Foreign function call land")
      2: (LISP::FDEFINITION-OBJECT C::%VERIFY-ARGUMENT-COUNT NIL)
      3: (KERNEL:%COERCE-TO-FUNCTION C::%VERIFY-ARGUMENT-COUNT)
      4: (FACT 1 -349312)[:EXTERNAL]
      5: (FACT -349311)
      6: (FACT -349310)
      7: (FACT -349309)
      8: (FACT -349308)
      9: (FACT -349307)
      10: (FACT -349306)
      11: (FACT -349305)
      12: (FACT -349304)
      13: (FACT -349303)
      14: (FACT -349302)
      15: (FACT -349301)
      16: (FACT -349300)
      17: (FACT -349299)
      18: (FACT -349298)
      19: (FACT -349297)
      20: (FACT -349296)
      ...
      --

      Everybody's a libertarian 'till their neighbour's becomes a crack house.
    2. Re:Error checking. by some+guy+I+know · · Score: 1
      Now if the problem had called for gracefully handling bad input, I'd have put it in.
      The GP was complaining about just that: the input was bad (i.e., the numbers were too large).
      Your solution would have handled that particular bad input, but not the more general case (negative numbers, etc.).
      In addition (from GP):
      And the nature of the test environment was that we couldn't see our programs' responses to the test data, and the test results weren't allowed to tell us what really happened when the program was run - just that "program terminated prematurely.", and that's it - no information about the data that caused this, and no indication of where the program died.
      In that case, the detailed error message(s) from the debugger would have been useless to you, because you never would have seen it(them).
      --
      Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
  31. Oh, THAT St. Petersburg by dmh20002 · · Score: 1

    I thought that sounded like a strange name for a school in Florida that I never heard of.

  32. India? by Anonymous Coward · · Score: 0

    Where are all the Indian universities? Some Indians say IIT is as good as MIT...

  33. The cold war continues..ahh by essreenim · · Score: 0, Flamebait

    All the former Soviet block countries, (Russia - St. Peterberg University, Poland - Warsaw University) did best ..followed by US institutions,.. ahem

    And u thaught u had'em beat.

    I blame George W. for sending a wave of negative accademic karma, thus destabilising engineering colleges all over America.

  34. Non-PC answer to Non-PC Question Here... by bikerguy99 · · Score: 0, Flamebait

    ...while Americans are dumb, incompetent, lazy, fat, ignorant and arrogant which qualifies them to manage all russians, indians, chinese and taiwanese combined...

  35. St.Petersburg guys, apply to MIT and Stanford by svetkins · · Score: 5, Interesting

    I participated in this contest twice, in '96 and '97.
    The first time, I was studying at a Bulgarian university (Sofia), and we scored 4th at the finals; MIT scored 5th. Two of us transfered to MIT that same year. Even though we had the skills to do well in such a contest (quick, efficient coding; algorithms knowledge; a little bit of teamwork), there's far more to computer science and engineering than that, and the rest is not taught in any Eastern European university.

    And this is basically why programming contests are so hot in that part of the world. And why American students generally don't do well. It's all about the incentive! Kids in the US don't need to do it, and have little to gain. Whereas in Eastern Europe, it's the way to get some kind of recognition, and get on the fast track to a good education, a good job, etc. (Usually, involving immigrating, of course.)

    Also, you should understand that these kids have been training for 5 years for such programming contests. Programming as a sport starts around 7 or 8th grade (IOI is the equivalent international contest for highschoolers), so by the time these kids get to college, they are highly experienced.

    So, yeah, I expect the winners to apply to the best American universities and get in, of course.
    MIT and Stanford can only gain by losing in that competition.

    1. Re:St.Petersburg guys, apply to MIT and Stanford by Anonymous Coward · · Score: 0

      I second that. Check out MIT's team. Two names are definetly Romanian.

    2. Re:St.Petersburg guys, apply to MIT and Stanford by Anonymous Coward · · Score: 0

      They have a six semester subject called "Speed programming" taught at the Faculty of Mathematics, Physics and Informatics, Comenius University in Bratislava, Slovakia. This is essentially 6 semesters of ACM preparation taught by former ACM finals participants. You can't easily beat a team so well prepared... See subject info and notice "ACM" in the link. A quote from the page: "Goal of this subject is to prepare students for programming contests of ACM ICPC type."

  36. [OT]Re:Congrats to the winners, and bitter... by pkhuong · · Score: 2, Informative

    BTW:

    Both definitions of factorial (recursive and non-recursive) are perfectly good (mathematically) ways of defining the function. However, in the Real World, there's a large difference: even in lazy languages, allocating the space for the list (stream? generator? i'm not very well-versed in Haskell) is going to take memory and computing time. In fact, i think that in this particular (trivial) example, allocation will take as much if not more resources than generating the data itself. The recursive definition, on the other hand, does not present this problem, since the numbers are generated on-the-fly (and the function is tail recursive).

    So, while defining factorial as the multiplication of a list might be very elegant, it's not extremely efficient (in both languages that are lazy like Haskell and those that aren't like, say, Lisp), since data is generated and then immediately thrown away. The recursive function remains elegant while not being wasteful. In fact, a compiler that recognizes tail-recursion should make it as efficient as the iterative version.

    --
    Try Corewar @ www.koth.org - rec.games.corewar
  37. Why NOT Stanford? by Anonymous Coward · · Score: 0

    Interesting alternative view of Stanford:

    http://www.epinions.com/content_73675148932

  38. Distribution Re:Non-PC Question Here... by hacksoncode · · Score: 1
    Yes, well, most foreign countries have this thing about conformity, and generate lots of grads with higher average abilities. The problem is, their distribution of talent is really narrow. The tend to stamp out (good!) cookie cutter programmers.

    The U.S., on the other hand, has a lower average (in my experience), but a *much* wider distribution. You find many more true stars as a percentage of grads.

    Why doesn't that generate wins in the ACM contest, you might ask? Well, at least when I looked into joining my school's team, it was a very informal thing. No studying and practicing for years, no serious coaches, etc. That's changed somewhat, but these *are* the kinds of problems that get easier the more you practice them.

    Having looked at quite a few, I can pick out an ACM question in seconds... they're really unique. Oh, and completely unrelated to anything anyone actually does in the real world :-). I'm not saying that's necessarily a bad thing.

  39. Just confirms that Indians are not so intelligent by Anonymous Coward · · Score: 0

    The average indian IQ is preety low according to international tests and this software contest confirms it. The very best indian colleges the IITs couldnt even get 3 out of 7 right! Even Bangladesh scored higher than them.

    What does that tell you?

  40. Lisp, Prolog, Oz - When will discrimination end? by Anonymous Coward · · Score: 0

    Why ban the most productive languages?

  41. Re:Just confirms that Indians are not so intellige by Anonymous Coward · · Score: 0

    I think the real issue is that the Indian institutions don't really have any strong comp sci programs. It's an issue of (a) number of programs (there are few), (b) quality of programs (so-so, staffing is a huge concern), (c) number of students (too few) and (d) funding (hardly any).

    Most of those "software engineers" you see at Infosys, TCS, Wipro, Satyam et al are engineering graduates (mechanical, chemical, electrical, etc), who get plucked by the companies and then trained by them in programming. But I'd hazard a guess that their training in fundamental data structures, analysis of algorithms and systems architecture is pretty weak.

    So they learn on the job.

    Intelligence isn't the issue, it's the combination of that and education.

  42. Another Past Contestant Heard From... by CharlieR · · Score: 1

    I participated in the contest in 1992, with our NYU team winning the NY regional and placing 12th in the finals. The most memorable aspect of this contest for me was the emphasis on teamwork. Even twelve years ago, there was only one machine. It is obvious to everyone, by now, that there is only one computer in the entire world, albeit with some nodes as yet unconnected. Cooperation is still the key to progress in our field.

    By the way, I was the only "American" on our team, and that made it much more fun. Everyone should know that nationality has no bearing on programming ability. Moreover, international group events can serve as a partial cure for racial prejudice.

  43. More info? by Anonymous Coward · · Score: 0

    When I competed in the ACM competitions (a long, long time ago), FORTRAN was the only language we were allowed to use. We had to use the file editor running on the host school's computer. No books, no notes, no nothing, no prewritten code, nothing. Only one person in the terminal and only on person at the terminal at a time. No subroutnes, no functions, just straightforward code.

    How much has changed since those days?

    1. Re:More info? by DunbarTheInept · · Score: 1

      They still limit the team to only one computer for all of them (the theory is that this allows poorer installations, that can't afford a spot for everyone, to participate fairly - also it forces the team members to 'talk offline' about solutions while one is frantically typing code. (Each team is given a private room near the computer lab, to run off to and make plans and come back.) Actually, they defineded 'terminal' as a single installation of keyboard and screen, regardless of whether it's a standalone PC or a terminal.

      They don't do fortran anymore, but they do specify the language. Back when I did it (10 years ago), they said you had to do either C or Pascal. Today it's probably going to include Java, but I don't know that for sure. languages that tend to do a lot of data structure work for you, like lisp, were not allowed.

      They allowed us to bring books and notes, but in paper form only - no stuff that could be transferred electronically.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    2. Re:More info? by Anonymous Coward · · Score: 0

      We have machines that can fly now.

  44. Speaking of Depressing by Anonymous Coward · · Score: 0

    "If you want to program, you program for it's own sake"

    "it's" = "it is"
    "its" = possessive.

    with all of the previous messages focusing on language proficiency, we consistently have people who post at a second grade level. Fortunately, it's not a measure of IQ, but a measure of mental organizational ability. And that isn't a good thing in the world of computers.

    How about if we give you a broom instead?

  45. No, Russians need a diffiferent style by Slashamatic · · Score: 1
    The problem is that due to the nature of Russian society, which still emphasises personal connections above all, large organisations such as the government and companies. They respond well to a personal touch, but they resent stupid management.

    You are right about software engineering, that is where they still show some weaknesses, but no more than the Indians.

    The end result is that you get what you pay for. If you are prepared to spend time supervising projects on a personal basis, they will work. and work well.