Tu primer problema,
paso a paso.
Vamos a resolver uno del TAP: entender qué pide, escribir un programa, probarlo y enviarlo al juez. El objetivo es llegar a tu primer Accepted, o AC.
¿Todavía no programaste en C++?
Antes de seguir, necesitás poder ejecutar un programa, leer números y usar un if / else. Podés empezar con la plantilla de C++, entrada y salida y condiciones.
Si todavía no tenés un entorno de C++ funcionando, pedinos una mano en la comunidad. También podés seguir el razonamiento y volver al código después.
Leé qué entra y qué sale
A la mitad · TAP 2026, problema A (At the midpoint en Codeforces)
La competencia dura cinco horas. Recibís cuánto tiempo pasó y tenés que decidir si estás antes, justo en la mitad o después.
- Entrada: tres enteros, horas, minutos y segundos. El programa los lee; no los elige.
- Salida: un único signo:
-si falta,=si estás justo a la mitad,+si ya pasó.
Leé también los límites y los ejemplos del enunciado. Son parte de lo que tu programa tiene que cumplir.
Pensá en una sola unidad
La mitad está en 2 horas, 30 minutos, 0 segundos. Para comparar sin separar muchos casos, pasá todo a segundos:
El tiempo transcurrido es horas * 3600 + minutos * 60 + segundos. Ahora solo comparás ese número con 9000: menor, igual o mayor.
Por ejemplo, 1 hora, 2 minutos y 3 segundos son 3723 segundos. Como 3723 es menor que 9000, la respuesta es -. Podés usar enteros: no hacen falta decimales.
Escribí tu versión
Leé los tres valores con cin, calculá los segundos y usá if / else if / else para elegir el signo. Con cout, imprimí solo la respuesta y un salto de línea.
Podés consultar variables, condiciones y cuentas enteras mientras lo hacés.
Usar una plantilla incompleta
Guardala como primer-ac.cpp y completá lo que indican los comentarios. Ya lee la entrada; todavía no calcula ni imprime la respuesta.
#include <iostream>
using namespace std;
int main() {
int horas, minutos, segundos;
cin >> horas >> minutos >> segundos;
// Converti el tiempo a segundos.
// Comparalo con la mitad de cinco horas.
// Imprimi un solo signo: -, = o +, y un salto de linea.
return 0;
}Apunte de apoyo: plantilla, variables, entrada y salida, condiciones y cuentas enteras, con explicaciones y ejemplos.
Descargar apunte de este problema (PDF) ↓Probalo antes de enviarlo
Ejecutá tu programa una vez por cada fila. Las primeras tres son los ejemplos del enunciado; las otras dos prueban los bordes de la mitad.
| Entrada | Salida | Qué comprobás |
|---|---|---|
1 2 3 | - | Todavía no llegaste a la mitad. |
3 1 2 | + | Ya pasaste la mitad. |
2 30 0 | = | Estás exactamente en la mitad. |
2 29 59 | - | Falta un segundo. |
2 30 1 | + | Pasó un segundo. |
En este problema hay una sola entrada por ejecución. La salida debe ser el signo, sin mensajes como «Ingresá las horas» o «La respuesta es».
Cómo probarlo en Visual Studio Code
- Abrí en Visual la carpeta donde guardaste
primer-ac.cppy guardá los cambios con Ctrl + S. - Abrí el panel inferior con Ctrl + J y elegí Terminal.
- Escribí este comando y pulsá Enter para preparar el programa:
g++ -std=c++17 primer-ac.cpp -o primer-ac - Si no aparecen errores, ejecutalo en esa misma terminal:
./primer-ac - Ingresá los tres valores, pulsando Enter después de cada número. Para la primera prueba:
El programa debería responder1 2 3-.
Para probar otra fila, volvé a ejecutar ./primer-ac e ingresá sus tres valores. Si cambiás el código, guardalo y repetí primero el comando g++.
Ver una implementación explicada
Si te trabaste o querés comparar tu versión, esta implementación sigue el razonamiento de arriba.
#include <iostream>
using namespace std;
int main() {
int horas, minutos, segundos;
cin >> horas >> minutos >> segundos;
int transcurrido = horas * 3600 + minutos * 60 + segundos;
int mitad = 5 * 3600 / 2;
if (transcurrido < mitad) {
cout << '-' << '\n';
} else if (transcurrido > mitad) {
cout << '+' << '\n';
} else {
cout << '=' << '\n';
}
return 0;
}transcurridoreúne las tres unidades en segundos.mitadcalcula la mitad de las cinco horas: 9000 segundos.- Las tres ramas imprimen
-,+o=, según la comparación.
Enviá tu solución al juez
El juez ejecuta tu programa con más entradas que las de los ejemplos y compara sus respuestas.
- Abrí A. At the midpoint en Codeforces. Iniciá sesión con Enter o creá una cuenta con Register.
- Si aparece el recuadro Practice?, registrate para practicar ese torneo y habilitar los envíos.
- Entrá en Submit Code. Comprobá que elegiste el problema A y un compilador de C++17 o posterior.
- Pegá el código completo o adjuntá tu archivo
.cpp. Enviá el programa, no el ejecutable ni la salida de un ejemplo. - Revisá el resultado en My Submissions. Si está en cola o evaluándose, esperá el veredicto.
- Accepted · AC
- Pasó las pruebas del juez. ¡Ya tenés tu primer problema aceptado!
- Wrong answer · WA
- Alguna salida no coincide. Revisá la conversión, la igualdad y los casos alrededor de 2:30:00.
- Compilation error · CE
- No pudo compilar. Leé el primer error y revisá la sintaxis y el lenguaje elegido.
Me apareció otro resultado
Runtime error: el programa falló al ejecutarse; revisá el código y la lectura de datos. Time limit exceeded: no terminó a tiempo; en este ejercicio, fijate si agregaste algún bucle que no termina.
Si no encontrás el error, traé tu código y tus pruebas a la comunidad.
Guía del Club de Algoritmia. Referencias: enunciado oficial del TAP 2026 y problema en Codeforces.
