Ahá. ¿Has oído hablar de los jueces online (tengo la impresión de haberlos mencionado cientos de veces en este foro)? Aquí tienes uno:
http://uva.onlinejudge.org/El funcionamiento es este. Tienes una lista (inmensa) de enunciados de problemas (donde te explican qué programa quieren que hagas y un ejemplo de entrada/salida). Puedes leer los problemas que te interesen, hacer una solución en C++ y subirla. El juez la compilara y le aplicará varios juegos de prueba. Comparará la salida de tu programa con la salida que tiene él y, si son iguales, te da el visto bueno. También tienes el
projecteuler.net. Son problemas de matemáticas que puedes resolver mediante un programa (muchos están orientados a este tipo de soluciones). Aquí no subes tu programa, sino directamente la solución al problema que te plantean. Por ejemplo, el primer problema de projecteuler es: haya el número de múltiplos de 3 y 5 menores que 1000. Lo único que tendrías que subir es un valor numérico. Como lo obtengas es cosa tuya (este problema de hecho se puede resolver a mano).
Si te va el rollo de la competición y tal, también tienes
topcoder.com. Es en plan juez online pero además ofrece una plataforma para competir contra otros usuarios (también se puede acceder sin competir, para practicar, por ejemplo).
Saludos