Algunos problemas en la revancha de noip
Entorno de evaluación de NOI y normativa sobre restricciones de uso del lenguaje de programación
Fecha de publicación: 2008-01-01 Número total de visitas: 4540
Esta normativa se aplica a NOI Una serie de competiciones nacionales. Estas normas entrarán en vigor a los 150 días de la fecha de su emisión. Todas las demás regulaciones y reglas de NOI que sean inconsistentes con estas regulaciones prevalecerán. Las consecuencias adversas que se produzcan por el incumplimiento de este reglamento serán asumidas por los propios jugadores.
Entorno de evaluación
Los concursos de la serie NOI utilizan los siguientes compiladores para evaluación y compilación:
Lenguaje PASCAL: fpc 2.0.1
C Idioma: gcc 3.2.2
Lenguaje C++: g++ 3.2.2
Los resultados del programa de respuestas del concursante se basan en los resultados de ejecución del código ejecutable generado por la versión anterior de el compilador.
Principios generales de programación
1. Para cada pregunta, los concursantes solo deben enviar un archivo de programa fuente. El nombre del archivo del programa fuente consta de la abreviatura del nombre de la pregunta del examen más un sufijo. Todos los nombres y sufijos del archivo del programa fuente deben estar en minúsculas. Los sufijos de los programas PASCAL, C y C++ son .pas, .c o .cpp respectivamente. Cuando un concursante envía varios archivos de programa fuente con diferentes sufijos para una pregunta del examen, el sistema de evaluación solo seleccionará aleatoriamente uno de ellos para su compilación y evaluación, y lo utilizará como la puntuación del concursante para esa pregunta del examen.
2. Aquellos que usan el lenguaje C/C++ no pueden usar sus propios archivos de encabezado y aquellos que usan el lenguaje Pascal no pueden usar sus propias unidades de biblioteca. A menos que se especifique lo contrario, la longitud del archivo fuente del programa de competencia para cada pregunta no debe ser superior a 100 KB y no se permite la creación de otros subdirectorios en el directorio especificado.
3. El programa concursante debe finalizar normalmente y regresar al sistema Linux, y el valor de retorno de la función principal debe ser 0.
4. Los programas de los concursantes solo pueden comunicarse con el entorno externo a través de los métodos claramente especificados en la pregunta, como leer y escribir archivos designados y llamar a funciones de biblioteca designadas. Las siguientes operaciones están estrictamente prohibidas en el programa:
· Intentar acceder a la red
· Usar fork, exec, system u otras funciones de generación de procesos/procesos
· Abrir o crear Otros archivos y directorios distintos de los archivos de entrada/salida especificados en la pregunta
· Redirigir los archivos de entrada/salida estándar de cualquier manera
· Ejecutar otros programas
· Cambiar los permisos de acceso al sistema de archivos
· Leer y escribir información de administración del sistema de archivos
· Usar llamadas al sistema además de leer y escribir archivos de entrada/salida específicos p >
· Capture y procese mensajes de entrada del mouse y del teclado
· Lea y escriba puertos de entrada/salida de la computadora
5. A menos que se especifique lo contrario en el título, la cantidad total de espacio de memoria estática utilizada en el programa del concursante no excederá los 20 MB, y la cantidad total de espacio de memoria aplicada dinámicamente no excederá los 30 MB.
Restricciones en programas C
Solo los siguientes tipos de datos básicos legales se pueden utilizar en programas C
Nombre
Longitud
char, char sin firmar
1 byte
corto, corto sin firmar
2 bytes
int, int sin firmar p>
4 bytes
largo, largo sin firmar
4 bytes
flotante
4 bytes
doble
8 bytes
Solo los siguientes archivos de encabezado estándar se pueden usar en programas C
Nombre
Descripción
stdio.h
stdlib.h
math.h
No podrá utilizarse cuando la pregunta del examen lo prohíba expresamente
ctype.h
cadena.h
errno.h
limites.h
float.h
Restricciones en programas C++
Solo los siguientes tipos de datos básicos legales pueden usarse en programas C++
Nombre
Longitud
char, carácter sin firmar
1 byte
corto, corto sin signo
2 bytes
int, int sin signo
4 Byte
largo, largo sin firmar
4 bytes
flotante
4 bytes
doble
8 bytes
bool
1 byte
Solo los siguientes archivos de encabezado estándar se pueden usar en programas C++
Nombre
Descripción
stdio.h
stdlib.h
math.h
Preguntas del examen expresamente prohibidas Puede no ser usado
ctype.h
string.h
errno.h
limits.h
float .h
iostream
string
iterator
bitset
Las siguientes plantillas están permitidas en programas C++
Tipo de plantilla
Archivos de encabezado relacionados
Conjunto booleano
Iterador
Cadena
Secuencia
C++ El Se prohíbe el uso de las siguientes plantillas en el programa:
l Secuencia: vector, lista, deque
l Adaptador de secuencia: pila, cola, prioridad_queue
l Contenedor asociado: map, multimap, set, multiset
l Cuasi-contenedor: valarray
l Contenedor hash: hash_map, hash_set, hash_multimap, hash_multiset
l Todos algoritmos de biblioteca estándar.
Los siguientes archivos de encabezado relacionados con estas plantillas tienen prohibido aparecer en el programa:
l l l l l l l Restricciones al programa PASCAL 1. Para programas en lenguaje Pascal, cuando los resultados de la compilación usando IDE y fpc son inconsistentes, prevalecerá el resultado de la compilación de fpc. 2. Permite el uso de bibliotecas matemáticas (usa cláusula matemática), así como ansistring. Sin embargo, no se permite el uso de modificadores de compilación (el interruptor de verificación de rango de Pascal se desactivó de forma predeterminada durante la prueba final: {$R-,Q-,S-}) y las opciones relacionadas con la optimización no son compatibles. >p>