1 / 14

ACM Programming Team

ACM Programming Team. Bill Punch. ACM Programming Contest . One of the premier programming competitions. Held every year since 1977 MSU was the winner that first year! In 1992 MSU came in second (of the world competition), second to Melbourne

caroun
Télécharger la présentation

ACM Programming Team

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ACM Programming Team Bill Punch

  2. ACM Programming Contest • One of the premier programming competitions. • Held every year since 1977 • MSU was the winner that first year! • In 1992 MSU came in second (of the world competition), second to Melbourne • It is a tough competition and requires a lot of practice. You really have to be "into" this kind of thing to enjoy the effort that is required • That's why we are here, to practice

  3. The rules • Each "team" consists of three members • teams share a single computer during the contest • requires some coordination of effort (though less than you might think) • Each university can send at most three teams • Competition is done in two rounds: • first round is the regional competition • Our region is ECNA (East Central North America). You can find them at http://acm.ashland.edu/xxxx where xxxx is the year. No xxxx means the latest year • This is a tough region: UoM, Carnegie Mellon, Waterloo, Toronto

  4. more rules • The top two from each region can go onto the world competition (held in various lovely places, last year Orlando, 2012 is Warsaw Poland) • sometimes more than 2 can go from a region. Ours is a pretty good region • world competition determines the winner!

  5. Local Competition • We have to pick teams sometime in September/October. • selection of teams will be a competition held in the Fall • Our regional Final will be sometime in late October, probably at Grand Valley (last year it was Oct 21). • We will have some competitions during the course of this semester thanks to Charlie Andrews, using the ACM programming environment (more on that later).

  6. What we need to do is … • Get better at learning how to apply algorithms to the problems that come up. • Practice, individual practice, is probably the most important so we will do more of that this semester

  7. You can practice on your own • http://uva.onlinejudge.org • There are problems here of varying difficulty which you can submit and see how well you do • problems are numbered, we will be working off of these • you have to register to get onto this site, please do that.

  8. handin • as a way of keeping track who does what, I have created a handin site for all of us • this is prgtem (only allowed 6 letters) • you should all be registered, at least everyone who came previously and said they were interested • I will give out problems each week. • You submit them to handin before the next session • Voluntary for those not getting credit, mandatory for those with credit. Every week, before class • In the comments of each program, record your time (that is, keep time as to how long it took you to get a correct submission to the UVA judge).

  9. It is all about speed • This is a contest of speed. Comments, organization, OOP, none of that matters • Getting the right answer matters! • What counts as a right answer can be tricky! • the questions and the examples can look easy, but there are edge cases that can be difficult, time consuming • getting your program to run efficiently is often the problem. We must write efficient code!

  10. Scoring • Each team gets some number of problems to solve in 5 hours • 7 – 9 problems, word problems which can be hard to parse • The team that solves the most problems wins! • If multiple teams solve the same number of problems, then how long it took them breaks the tie (short times win) • Every mis-submission counts as 30 minutes against your time! • Just remember, the more problems you solve, the better. That is the winning strategy • Testing is done by an automatic judge (like UVA) that tests a broad number of cases • if you mess up, you can get one of a set of cryptic error messages saying what went wrong

  11. Languages • You can use one of 3 languages: C, C++, Java • We are a C++ shop so we will concentrate on that, but that is typically not the issue. Knowing the algorithm is the issue • none the less, familiarity with the language is helpful and we will talk about that early on. • If you have never programmed C++ before (or are just learning), you will have to work some to keep up.

  12. C++ I/O • All I/O for Acm programming contest problems is assumed to come from standard in and goes to standard out. No file manipulation is required • It is as if the problem were run as follows. Assume the name of the compiled program is a.out • ./a.out < input.txt • output is fed to the console and graded

  13. problem • Look at Volume1, problem 100 • remember the cin >> someInt will read in an integer from standard in • remember that cin.eof() is set to True when cin tries to read from an empty input

  14. problem Look at Volume 4, number 483 Couple of things there: • how to read in the line: getline(cin,line) • how to parse the line : string streams • how to reverse the line: reverse iterator is nice

More Related