In this post you will know about full details about competitive Programming.competitive programming is a kind of mental sport, wherein you (or your team) use your programming skills to write code for some really interesting and difficult problems, and in the process try to win a particular competition.
Definition
Competitive programming is solving well-defined problems by writing computer programs under specified limits.
Based on the above definition, competitive programming has three aspects:
Well-defined problems. You are presented with one or more problems. The problem statement contains variables, and you have to be able to answer the problem if given any possible combination of values of the variables. The problem will be well-defined: you will be informed the exact constraints of all variables, any necessary assumptions, etc.
Computer programs. You write computer programs that solve the problems. Note that the "computer program" here is a very simple command-line program; no fancy GUI or web app etc. The command-line program reads the values of the variables from the standard input, and must write the answer to the standard output.
Specified limits. Your program must run and produce the answer within a specified time and memory limit. Also, you must write the programs in a specified set of allowed programming languages.
These and all other restrictions make CP a great form of mind sport, and is an excellent way of improving your programming skills. It is recognized and supported by almost all big tech companies like Google, Amazon, Facebook among others.
There are many websites where you can practice competitive programming. Some of these are-
CodeChef
TopCoder
SPOJ (Sphere Online Judge)
HackerRank
and many more....
Contests
Nowadays, there are many types of competitive programming contest formats. There are several criteria. Some of them:
Location
Online (e.g., Codeforces rounds, topcoder SRMs)
Onsite (e.g., local contests)
Frequency
Annual (e.g., IOI, Google Code Jam, Facebook Hacker Cup)
Monthly (e.g., https://www.codechef.com/ (CodeChef) long contests)
Several times a month (e.g., Codeforces rounds, topcoder SRMs)
Duration
~ 1 - 2 weeks (e.g., CodeChef long contests, topcoder Marathon)
~ 1 - 3 days (e.g., Google Code Jam qualification round)
5 hours (e.g., The ACM-ICPC International Collegiate Programming Contest (ACM-ICPC), IOI)
~ 1 - 3 hours (e.g., Codeforces rounds, topcoder SRMs)
Allowed participants
University students (e.g., ACM-ICPC)
High school students (e.g., IOI)
Anyone (e.g., Google Code Jam)
Participation type
3 persons per team (e.g., ACM-ICPC)
Individual (almost all contests other than ACM-ICPC)
Online Judge
This term is very popular in competitive programming world. It is a website containing a collection of competitive programming problems, where you can freely submit solutions, anytime. There is usually no specified duration, unlike contests. People usually practice their skill in online judges.
No comments:
Post a Comment