FAQs PROBLEMS

¿Tienes alguna duda sobre URI Online Judge? ¡Aquí puedes encontrar la respuesta!

  • How do I submit problems of my own to the portal?

    First, follow the steps below:

    • Format your problem on URI Online Judge Builder (https://www.urionlinejudge.com.br/builder/);
    • The title should be CamelCase (first letters of each word capitalized);
    • Variables should be in bold in all text;
    • There should be two versions of the description, one in Portuguese and another in the English language (Spanish is optional). Without one of the two versions, your problem will not be published until be translated into the one or other language;
    • Download the generated files.

    After this, you need to create the inputs and outputs and a solution (in C or C ++) that should receive "Accepted".

    • Inputs are files with name xxx-a.in, where xxx is the name of the problem (if more files are required, should follow the nomenclature, like xxx-b.in);
    • Outputs are files with name xxx-a.sol(same rules of inputs, just different extension);
    • There have to be at least 10 test cases;
    • Each file must not surpass 10MB

    If you, as an author, want to limit the solution approach that should be adopted to the problem (for example, want to spend an n.log2n solution but do not want to pass a solution n2 or n3) should then send a second solution that should receive "time limit Exceeded" with the time given to the problem, so we can test whether the set time limit is correct and do the necessary adjustments. Remember to test the limits of the problem.

    All of these files must be added to a folder that should be referred to portal@urionlinejudge.com.br with the subject [New Problem] - Name of your problem. All problems pass through a check before being added to our repository, and new additions happen all Mondays.

  • May I suggest problems from other sources?

    Yes, since there is an explicit authorization of the author to use your problem on the portal URI Online Judge. Even so, the problem should be formatted in the Builder (https://www.urionlinejudge.com.br/builder/).

  • I am finding difficulties/doubts with a problem. Where can I find help?

    Unfortunately we do not have time to assist, through the feedback channel, our users find errors in their codes. But the URI Online Judge has its own Forum (urionlinejudge.com.br/forum) where you will find discussion topics to all UOJ problems and can post your questions.

  • I found a mistake in the description or IOs of a problem. How do I contact the team about it?

    To contact about an error in the description of a problem or report any probable input and output error, you can contact us through the feedback page, posing as the title of your message "Error XXXX problem description" or "Probable error in XXXX problem files."

  • ¿QUE ES UNA ENTRADA QUE TERMINA CON EOF?

    En este tipo de entrada no está especificada la cantidad de casos de prueba. Pueden ser 1, 2 o más de 1 millón. Normalmente un archivo de entrada con tres casos de prueba podría ser así:

    7123
    32
    125
    

    En C++, esta lectura podría ser resuelta de la siguiente forma:

    int N;
    while (cin >> N) {
      ...
    }
    

    En Python, esta lectura podría ser resuelta de la siguiente forma:

    while True:
        try:
          ...
        except EOFError:
          break
    

    En C#, esta lectura podría ser resuelta de la siguiente forma:

    using System;
    
        class URI {
    
            static void Main(string[] args) {
    
                string line;
    
                while ((line = System.Console.ReadLine()) != null) {
                    ...
                }
    
            }
    
        }
    

    En Java, esta lectura podría ser resuelta de la siguiente forma:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
     
    public class Main {
        public static void main(String[] args) throws IOException {
            InputStreamReader ir = new InputStreamReader(System.in);
            BufferedReader in = new BufferedReader(ir);
           
            while(in.ready()) {
                String str = in.readLine();
            }
        }    
    }
    

    Esto significa que mientras haya valores enteros en el archivo de entrada, estos serán leidos en la variable N

  • Time Limit en Java

    Si recibe “time limit” en Java, verifique que su solución utiliza métodos optimizados de entrada y salida.  Como los casos de prueba pueden ser grandes, usar Scanner y System.out hará que su solución reciba “Time Limit Exceeded”. Solo los problemas de Principiante aceptarán soluciones con métodos de entrada más lentos.

  • SI MI CÓDIGO RECIBE TLE, ¿QUIERE DECIR QUE ESTÁ CORRECTO PERO DEMORA MUCHO?

    No, TLE (Time Limit Exceeded) quiere decir que su solución superó los límites de tiempo definidos. Su programa no  terminó de ejecutar en el tiempo predeterminado, por lo que fue interrumpido. De esta forma no es posible saber si su código estaba correcto o no.

  • ¡SIGO RECIBIENDO “WRONG ANSWER”! ¿QUE ESTÁ MAL?

    Si continúa recibiendo “Wrong Answer” y corrobora que su solución es correcta, por favor, verifique que su codigo fuente:

    • No está mostrando nada mas que lo requerido por la descripción del problema, como mensajes de escritura (“Ingrese x:”)
    • Está imprimiendo el último valor seguido de un final de linea (“\n”);
  • ERROR EN CÁLCULOS SIMPLES USANDO PUNTO FLOTANTE

    Intente cambiar las variables del tipo float por double. A veces el error ocurre en la precisión de la variable.

  • NÚMERO DE DÍGITOS DECIMALES

    En C++, esta es una forma posible para formatear un valor con 5 dígitos luego del punto decimal.

    #include <iomanip>

    En el programa principal, para la primer linea, utilice:

    cout << fixed << setprecision(5);
  • What is uDebug? How can I use this tool on the resolution of problems?

    The uDebug is a tool that you can verify if the way that you solved determined problem is correct. To do that, you has to solve the problem and compile your code with a input, and copy the output generated. On the uDebug page of the problem, you just need to paste the input and the output and the website will return if your output is correct or not.