Update to latest version #4

Merged
Ta180m merged 123 commits from master into master 2020-06-18 19:15:27 +00:00
Showing only changes of commit d1509399a6 - Show all commits

View file

@ -1,7 +1,7 @@
---
slug: /intro/getting-started
title: Getting Started
author: Nathan Wang, Benjamin Qi
author: Nathan Wang, Benjamin Qi, Darren Yao
order: 2
---
@ -19,13 +19,17 @@ Todo:
## Introduction
In competitive programming contests, one must solve well-defined problems by writing computer programs under specified constraints ([Wikipedia](https://en.wikipedia.org/wiki/Competitive_programming)). Typically, the most popular language is C++, followed by Java and Python.
The goal of competitive programming is to write code to solve given problems quickly. These problems are not open problems; they are problems that are designed to be solved in the short timeframe of a contest, and have already been solved by the problem writer and testers. In general, each problem in competitive programming is solved by a two-step process: coming up with the algorithm, which involves problem solving skills and intuition, and implementing the algorithm, which requires programming skills to translate the algorithm into working code.
A contest generally lasts for several hours, and consists of a set of problems. For each problem, when you complete your code code, you submit it to a grader, which checks the answers calculated by the your program against a set of predetermined test cases. For each problem, you are given a time limit and a memory limit that your program must satisfy.
For those of you with experience in software development, note that competitive programming is quite different, as the goal is to write programs that compute the correct answer, run quickly, and can be implemented quickly. Note that nowhere was maintainability of code mentioned. This means that you should throw away everything you know about traditional code writing; you don't need to bother documenting your code, because it only needs to be readable to you, during the contest.
[William Lin - What is Competitive Programming?](https://www.youtube.com/watch?time_continue=1&v=ueNT-w7Oluw)
## Contest Format
(todo)
The USA Computing Olympiad is a national programming competition that occurs four times a year, with December, January, February, and US Open (March) contests. The regular contests are four hours long, and the US Open is five hours long. Each contest contains three problems. Solutions are evaluated and scored against a set of predetermined test cases that are not visible to the student. Scoring is out of 1000 points, with each problem being weighted equally. There are four divisions of contests: Bronze, Silver, Gold, and Platinum. After each contest, students who meet the contest-dependent cutoff for promotion will compete in the next division for future contests.
See [USACO contests](http://www.usaco.org/index.php?page=contests).
@ -46,9 +50,9 @@ Keep in mind that it's easy to switch languages down the road! Don't get caught
### Language References
All of these are provided at the IOI asside from the additional C++ reference.
All of these are provided at the IOI aside from the additional C++ reference.
- [C++](https://en.cppreference.com/w/)
- [Additional C++ Reference](http://www.cplusplus.com/)
- [Java](https://docs.oracle.com/javase/8/docs/api/overview-summary.html)
- [Python3](https://docs.python.org/3/reference/)
- [Python3](https://docs.python.org/3/reference/)