Preguntas Frecuentes
- Q:¿Cuál es el compilador que utiliza el juez y cuáles son las opciones de compilador?
-
A:
El sistema de juez en línea está funcionando en Debian Linux. Estamos utilizando GNU GCC/G++ para compilar C/C++, Free Pascal para compilar Pascal y sun-java-jdk1.6 para Java. Las opciones de compilación son:
C: gcc Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static C++: g++ Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static Pascal: fpc -Co -Cr -Ct -Ci Java: javac Main.java La versión de nuestro software de compilador es:
- gcc/g++ 4.1.2 20061115 (pre-release) (Debian 4.1.1-21)
- glibc 2.3.6
- Free Pascal Compiler versión 2.2.4-3 [2009/06/04] para i386
- Java 1.6.0_06
- Q:¿Dónde se encuentra la entrada y la salida?
-
A:
Tu programa debe leer la entrada desde stdin ('Entrada Estándar') y escribir la salida a stdout ('Salida Estándar'). Por ejemplo, puedes usar 'scanf' en C o 'cin' en C++ para leer desde stdin, y usar 'printf' en C o 'cout' en C++ para escribir a stdout.
Los programas de usuario no pueden abrir y leer desde/escribir a archivos; recibirás un "Error en tiempo de ejecución" si intentas hacerlo.- He aquí una solución de ejemplo para el problema 1000 usando C++:
-
#include <iostream> using namespace std; int main(){ int a,b; while(cin >> a >> b) cout << a+b << endl; return 0; } - He aquí una solución de ejemplo para el problema 1000 usando C:
-
#include <stdio.h> int main(){ int a,b; while(scanf("%d %d",&a, &b) != EOF) printf("%d\n",a+b); return 0; } - He aquí una solución de ejemplo para el problema 1000 usando PASCAL:
-
program p1001(Input,Output); var a,b:Integer; begin while not eof(Input) do begin Readln(a,b); Writeln(a+b); end; end. - He aquí una solución de ejemplo para el problema 1000 usando Java:
-
public class Main{ public static void main(String args[]){ Scanner cin = new Scanner(System.in); int a, b; while (cin.hasNext()){ a = cin.nextInt(), b = cin.nextInt(); System.out.println(a + b); } } }
- Q:¿Por qué recibí un error de compilación? ¡Está bien hecho!
-
A:
Existen algunas diferencias entre GNU y MS-VC++, tales como:
- main debe declararse como int, void main provocará un error de compilación.
- i queda fuera de definición después de un bloque "for(int i=0...){...}"
- itoa no es una función ANSI.
- __int64 de VC no es ANSI, pero puedes usar long long para enteros de 64 bits.
- Q:¿Qué significa la respuesta del juez XXXXX?
-
A:
A continuación se muestra una lista de las respuestas del juez y su significado:
- Pendiente : El juez está tan ocupado que no puede evaluar tu envío en este momento, generalmente solo debes esperar un minuto y tu envío será evaluado.
- Pendiente de Rejuzgar : Los datos de prueba han sido actualizados, y el envío será evaluado nuevamente. Todos estos envíos estaban esperando para el Rejuzgamiento.
- Compilando : El juez está compilando tu código fuente.
- Ejecutando y Evaluando: Tu código se está ejecutando y siendo evaluado por nuestro Juez en Línea.
- Aceptado : ¡Bien hecho! Tu programa es correcto.
- Error de Presentación : El formato de salida no es exactamente el mismo que el formato esperado por el juez, aunque tu respuesta al problema es correcta. Revisa tu salida para espacios, líneas en blanco, etc., según la especificación de salida del problema.
- Respuesta Incorrecta : No se alcanzó la solución correcta para las entradas. Las entradas y salidas que utilizamos para probar los programas no son públicas (es recomendable acostumbrarse a la dinámica de un concurso real ;-)).
- Tiempo Limite Excedido : Tu programa intentó ejecutarse durante demasiado tiempo.
- Límite de Memoria Excedido : Tu programa intentó usar más memoria de la permitida por la configuración predeterminada del juez.
- Límite de Salida Excedido: Tu programa intentó escribir demasiada información. Esto generalmente ocurre si entra en un bucle infinito. Actualmente, el límite de salida es de 1MB de bytes.
- Error en Tiempo de Ejecución : Cualquier otro error durante la ejecución resultará en un error en tiempo de ejecución, como "fallo de segmentación", "excepción de punto flotante", "uso de funciones prohibidas", "intento de acceso a memorias prohibidas", etc.
- Error de Compilación
- Limitación de tiempo excedida : Tu programa intentó ejecutarse durante más tiempo del permitido.
- Limitación de memoria excedida : Tu programa intentó usar más memoria de la que está configurada por el juez.
- Límite de salida excedido: Tu programa intentó escribir demasiada información. Esto suele ocurrir si entra en un bucle infinito. Actualmente, el límite de salida es de 1MB.
- Error de ejecución : Todos los demás errores durante la fase de ejecución se consideran errores de ejecución, tales como 'falla de segmentación', 'excepción de punto flotante', 'uso de funciones prohibidas', 'intento de acceso a memoria prohibida', entre otros.
- Error de compilación : El compilador (gcc/g++/gpc) no pudo compilar tu programa ANSI. Por supuesto, los mensajes de advertencia no son errores. Haz clic en el enlace proporcionado por la respuesta del juez para ver el mensaje de error real.