Tema 1
Variables, tipos de datos y entrada/salida
Patrón de examen
Siempre verifica el rango de los datos antes de elegir el tipo. Un overflow silencioso produce Wrong Answer sin mensaje de error.
Explicación
Tipos de datos fundamentales
| Tipo | Bits | Rango | Uso |
|---|---|---|---|
int | 32 | ±2×10⁹ | Enteros típicos |
long long | 64 | ±9×10¹⁸ | Enteros grandes |
double | 64 | ±1.7×10³⁰⁸ | Punto flotante |
char | 8 | 0-127 | Caracteres ASCII |
bool | 8 | 0 o 1 | Booleano |
string | variable | — | Cadenas |
Regla de oro: usa long long cuando n > 10⁹ o cuando hagas multiplicaciones que puedan desbordar int.
Entrada y salida
cin >> a >> b; // leer múltiples valores
cout << val << "\n"; // imprimir (\n más rápido que endl)
while (cin >> x) { } // leer hasta EOF
getline(cin, linea); // leer línea completa
Aceleración de I/O (usar siempre en competencia)
ios_base::sync_with_stdio(false);
cin.tie(NULL);
Hace cin/cout tan rápido como scanf/printf. Añadir al inicio de main.