---
# System prepended metadata

title: Introducción a la programación competitiva

---

# Introducción a la programación competitiva

## ¿Qué es la programación competitiva?
La programación competitiva es un deporte mental practicado generalmente de forma presencial, cuyo objetivo es que un competidor resuelva la mayor cantidad de problemas que hayan sido dados en un problem set. Cada problema cuenta con especificaciones tales como limites de tiempo y memoria de ejecución del programa.

Los participantes de un concurso de programación competitiva, resuelven problemas lógicos o matematicos en el lenguaje de codificación de su elección. El número de problemas puede variar en función del concurso. Los resultados se juzgan por el número de preguntas resueltas, el tiempo empleado en resolver los problemas y otros factores, como el tiempo de ejecución, el tamaño del programa, etc.

## Concursos de programación competitiva
Algunos de los concursos de programación competitiva más conocidos son:

* IOI
* ICPC (International Collegiate Programming Competitions) [ICPC](https://icpc.global/)
* [Topcoder](https://www.topcoder.com/)
* Google’s Coding Competitions like [Google Code Jam](https://codingcompetitions.withgoogle.com/codejam), [Google Hash Code](https://codingcompetitions.withgoogle.com/hashcode), and [Google kickstart](https://codingcompetitions.withgoogle.com/kickstart)



### Tipos
### Reglas
### Scoreboard
### Scorefrozen
### Reglas OMI

### Reglas ICPC

## Jueces online
Existen jueces online que permiten entrenar para los concursos oficiales, por lo general, todos los jueces online permiten leer problemas, subir la solución de un problema, ser evaluado y por lo tanto, recibir un veredicto.

Algunos jueces online son:
* [Codeforces](https://codeforces.com/)
* [Vjudge](https://vjudge.net/)
* [Codechef](https://www.codechef.com/)
* [Online judge](https://onlinejudge.org/index.php)


### Veredictos
Un veredicto es el resultado que el juez online da para decir si la solución al problema fue correcta o no. Dependiendo de cada juez online, existen diferentes veredictos, pero los más comunes son los siguientes:

* Accepted (AC): La solución del problema ha pasado todos los casos y es aceptado.
* Wrong Answer (WA): El resultado del código enviado es distinto a la respuesta correcta, por lo tanto no es aceptado.
* Time Limit Exceeded (TLE): La ejecución de nuestro código tomó más tiempo del establecido en el enunciado del problema. Este veredicto no necesariamente significa que la solución es correcta, esta enfocada en el tiempo que el programa tardo en correr. 
* Runtime Error (RE): El programa terminó repentinamente debido a un error de ejecución. Por ejemplo, al tratar de acceder a una posición inválida de un arreglo.
* Compilation Error: El código no compila correctamente.
* Memory Limit Exceeded: la ejecución del programa tomó más memoria que el límite establecido.


## Entrenamiento
### Individual
### En equipo
