Ayuda


Preguntas frecuentes
  1. ¿Qué significan los veredictos en mis envíos?
  2. Cada veredicto tiene su propio significado, los cuales explicaremos a continuación:

    • Pendiente: Significa que tu código está siendo juzgado con varios casos de prueba.
    • Aceptado: Significa que para todos los casos de prueba, tu código generó las mismas salidas esperadas por SMOJ.
    • Respuesta Incorrecta: Significa que tu código para algún caso de prueba no generó la misma salida que esparaba SMOJ.
    • Límite de Tiempo Excedido: Significa que el código excedió el tiempo límite permitido (por defecto este valor corresponde a 2 segundos).
    • Error de Compilación: Significa que tu código presenta un error al ser procesado por el intérprete de Python.
    • Error en tiempo de ejecución: Significa que tu código presenta un error cuando estuvo corriendo.
    • Error Interno: Significa que hubo algún tipo de error atribuible a SMOJ mientras juzgaba tu código.
    • Error de formato: Significa que el formato de la salida de tu programa (o el retorno de tu función), difiere con la salida o retorno que espera SMOJ. Generalmente sucede por añadir saltos de línea o espacios adicionales.

  3. ¿Por qué mi código obtiene respuesta incorrecta?
  4. Las principales sugerencias son las siguientes:

    • En el argumento de la función input() NO debe ir nada, es decir, NO utilices:
      algo   = input("Ingrese algo: ")
      nombre = input("Ingrese su nombre: ")
      numero = int(input("Ingrese el numero: "))
      ...
      Simple y estrictamente utiliza:
      algo = input()
      nombre = input()
      numero = int(input())
      ...
    • Cuando imprimas algo, debes tener en cuenta que debes mantener el mismo formato que te solicita el enunciado, ver los ejemplos de cada problema puede ser una ayuda. Para SMOJ NO es lo mismo print("Si") que print("si") (Nótese el cambio de la letra S). Es decir, asegurate de ver como debe ser la salida de tu programa.
    • Para resolver algunos problemas podría ser necesario redondear las salidas que sean números. Lo anterior se puede deducir por el ejemplo o explícitamente por el enunciado
    • Un error común es dividir un número por 0, debes estar atento a esa posibilidad si estás trabajando con números.
    • Otro error es intentar acceder a un elemento que no existe en una estructura. Por ejemplo, imagina que quieres acceder al elemento con índice 10 de una lista, pero la lista solo contiene 3 elementos. Lo anterior no es válido y se tendrá un error.
    • Debes verificar que tu código no genera un ciclo infinito, generalmente esto ocurre cuando se trabaja con while.
    • Existen problemas que solicitan copiar una estructura en tu código. Si lo anterior no es explícito, la estructura correspondiente se copiará automáticamente en tu cádigo, en tal caso no copies la estructura por tu cuenta, pues la estructura que se copiará podría tener muchísimos más elementos de los que se muestran en el enunciado del problema.
    • Este vídeo muestra algunos errores típicos y tips para usar SMOJ.

  5. ¿Existe una única solución para cada problema en SMOJ?
  6. No. Hay múltiples soluciones para un mismo problema. Solo debes cerciorarte del formato de entrada de los datos y del formato de la salida que te solicita el enunciado.

  7. ¿Cuál es la versión de Python que soporta SMOJ?
  8. SMOJ soporta la versión 3.8.1 de Python.

  9. ¿Cuál es la versión de GCC que soporta SMOJ?
  10. SMOJ soporta la versión 9.2.0 de GCC.

  11. ¿Cuál es la versión de OpenJDK que soporta SMOJ?
  12. SMOJ soporta la versión 13.0.1 de OpenJDK.

  13. ¿Qué debo tener en cuenta para mi código en Java?
  14. Ten en cuenta las siguientes sugerencias:

    • Tu código siempre debe estar contenido en la clase principal:
      															import java.io.*;
      public class main{
      	public static void main(String arg[]) throws IOException{
      	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      	String entrada = br.readLine();
      	int edad = Integer.parseInt(entrada);
      	System.out.println(edad);
      	//...
      	}
      }
      														
    • Recuerda, en todo momento, cerrar cada sentencia de tu código para evitar errores. No es lo mismo esto:
      System.out.println("Hola Mundo")
      a esto:
      System.out.println("Hola Mundo");
    • Ten en cuenta que Java es un lenguaje de programación que utiliza CamelCase.