NCSU Competitive Programming

Competitive programming at NC State is all about problem solving. We hold weekly practice sessions, where we get to try out lots of different types of problems. A few times each year, we get to compete with other students on campus, with other schools in our region or with schools from all over the world. This one of the activities of the student ACM / AITP chapters, and our weekly practice meetings and our local contests are open to all students.

Competitive Programming Practice

We have a weekly practice meeting on Monday evenings from 5:20 to 7:10. It's open to all students. We're curreently meeting in room 2240 of Engineering Building 3.

For practice, we're using the problem library at Open Kattis. This system is very similar to what we use at the North American Qualifier contest and at the Regional contest. Plus, it has a library of a few thousands of problems we can practice with. This week, we're looking at four problems using combinatorics:

Practice Attendance

If you attended practice, please fill out the following very short form. This is just an easy way for us to keep up with who's participating and to maintain a contact list.

Attendance Form

About Competitive Programming

Competitive programming is a fun way to learn algorithms and programming techniques, develop skill in design and implementation, and learn to communicate and work effectively in a team. The activity is focused on problem solving. Participants start with one or more problem descriptions, like this Balloons Problem or this Low Toner Problem. Working from the description, they try to design and implement a working solution; they just try to do it more quickly than anyone else.

Local Contest

We have a local contest just about every semester. Our next one should be near the end of September.

Winners of Past Local Contests

Sample Problems

Problems come from a variety of areas, and often feature concepts from mathematics, common algorithms or algorithmic techniques. They range in difficulty from something that a quick programmer could write in less than five minutes to something that would take more than an hour just to code. Below, I've listed a few examples just to illustrate what these kinds of problems are look like.

Useful Resources