Reglas Olimpiada Dominicana de Informática
Problemas
Todos los problemas de la ODI están diseñados para ser algorítmicos. Para cada problema se especificará, entre otras cosas, los límites de memoria y tiempo. Se le avisa a los concursantes someter soluciones que pasarán todos los ímites establecidos para cada problema.
Descripción de problemas
Cada problema especificará:- La tarea a resolver
- El rango de los valores de entrada
- Los límites de los recursos computacionales (memoria y tiempo de procesamiento)
- Cualquier otra restricción para un problema
Puntuación y Ranking
- Cada problema tendrá una puntuación máxima establecida antes de iniciar la competencia.
- Los problemas tienen distintos casos de prueba. La puntuación para una solución se determinará bajo la siguiente fórmula: (casosAprobados/totalCasos) * PUNTUACION_PROBLEMA. Cada concursante puede enviar múltiples soluciones a un problema. Para fines de puntuación, se determinará la mejor de todas. No hay penalidad por subir más de una solución a un problema.
- En la tabla de posiciones están ordenados los competidores descendentemente por la suma de las puntuaciones de los problemas individuales.
Notas
Notas generales
- Nunca termines tus programas esperando entrada del usuario (ej.: que presionen enter para terminar). Esta una práctica común entre los que programan con algún IDE, y lo hacen porque Windows cierra la consola desde que el programa termina. Si envías una solución de esta manera, esta tomará demasiado (se quedará esperando entrada, y nunca llegará), lo que causará un veredicto incorrecto por límite de tiempo excedido. Si quieres probar tus programas, abre una consola (cmd.exe) y localízate en el lugar que se encuentra el ejecutable de tu solución. Si lo haces así, nunca tendrás problemas.
C/C++
- Recuerda que conio.h NO es una librería estándar (sólo funciona en algunos compiladores para Windows). Si la incluyes en tus programas, los mismos NO compilarán en SPOJ.
- Por la razón anterior, getch() tampoco funciona. Utiliza en cambio getchar(), que se encuentra en stdio.h
C#
- El compilador que usa este juez es Mono C# Compiler v2.0.1. No es el compilador de Microsoft, y este soporta C# hasta la versión 3.0.
- No utilices espacios de nombres que no necesites. Si trabajas con Visual Studio y este te incluyó la siguiente línea: using System.Threading.Tasks; al principio de tu archivo fuente, bórrala, pues aquí te produciría un error de compilación.
La cabecera de un archivo en C#, en general, debería tener sólo lo siguiente:
using System;
using System.Collections.Generic;
using System.Text;