Dudas Generales sobre soluciones en COJ

Feel free to ask any questions related to the COJ.
Post Reply
EricNG
Posts: 2
Joined: 4 years ago
Gender: None specified

Dudas Generales sobre soluciones en COJ

Post by EricNG » 4 years ago


Me gustaria empezar un tema que tenga que ver con algunas cosas de las cuales aun desconozco sobre el COJ. Tal vez el hecho de que sea bastante nuevo en esto de resolver problemas en linea no me ha dejado aclarar algunas cosas que no se donde preguntar... aqui escribire si alguien tiene dudas puede dejarlas aqui y asi de paso las leo y tal vez sean las mias (probablemente) tambien.
Por ahora estoy muy confundido respecto a que quiere decir que la entrada termina por EOF (the input is terminated by EOF)... Agradecere cualquier respuesta en cuanto a esto



User avatar
ymondelo20
Posts: 1968
Joined: 7 years ago
Location: Universidad de las Ciencias Informáticas
Gender: None specified
Contact:

Re: Dudas Generales sobre soluciones en COJ

Post by ymondelo20 » 4 years ago

EOF es el diminutivo común para End of File (fin de fichero).
"Every problem has a simple, fast and wrong solution" OJ's Main Law. ;)

imachin
Posts: 2
Joined: 3 years ago
Gender: None specified

Re: Dudas Generales sobre soluciones en COJ

Post by imachin » 3 years ago

En ocasiones hay problemas que especifican el uso del EOF, yo pogramo en Java y aun tengo probemas para usar el mismo, no he sido aun capaz de resolver un problema con el uso del EOF, agradecería cualquier ayuda o referencia de su correcto uso, en código, toda información que he buscado y he intentado no me ha servido. Hay ejercicios que no especifican el uso del EOF solo dicen "para múltiples entradas", pero no ponen el límite de los casos de prueba, si alguien me pudiera ayudar le estaría agradecido, gracias de antemano.

User avatar
isaac
Posts: 83
Joined: 3 years ago
Gender: None specified

Re: Dudas Generales sobre soluciones en COJ

Post by isaac » 3 years ago

Este tema resulta comun dentro de las principales preguntas que se hacen los usuarios al inicio. Para entender esto, primero hay que saber como es la calificacion de los jurados en linea. La comprobacion del codigo que uno envia se hace de la siguiente forma. En el servidor (en este caso, el servidor de la UCI) estan guardados todos los casos de prueba referentes a cada problema. Al enviar el codigo, un programa toma estos casos de prueba y analiza si nuestra solucion es correcta o no. Esto se hace asi porque resulta un poco mas facil, ademas, es una condicion necesaria para el OJ porque ningun administrador del COJ se va a poner a calificar envio por envio con casos que se sepan de memoria, eso es algo ilogico pensarlo, por eso recurrimos a los ficheros. El fichero de entrada, no siempre tiene la estructura que indica cuantos casos de prueba contiene, hay veces que en el problema no te especifican cuantos casos y ahi es cuando entra el EOF. Lo unico que representa el EOF es el fin de fichero, o sea, ya no hay mas datos para leer. En C++ se puede hacer de las siguientes dos formas:

1- while(scanf() != EOF) { Puede ser EOF o -1, al final tienen el mismo valor
}
2- while(cin >> ) {
}

En Java por el contrario, los scanners tienen un metodo interno llamado hasNext...() que en dependencia de lo que estemos leyendo, es lo que va donde puse los puntos suspensivos. Ejemplo: sc.hasNextInt()
Si ese metodo devuelve falso, es porque ha llegado al fin de fichero o mas conocido como EOF. Creo que eso es todo lo que puedo comentar acerca de esto

User avatar
WIL
Posts: 11
Joined: 7 years ago
Gender: Male

Re: Dudas Generales sobre soluciones en COJ

Post by WIL » 3 years ago

Agregar que si se usa BufferedRedear para la lectura, se debe usar el método .ready() que al igual que el hasNext() en el Scanner, retorna false cuando se ha llegado al fin del fichero.
PD. Siempre en los problemas que hay que utilizar lectura hasta fin de fichero, lo dejan explícito en la desccripción de una forma u otra.
I'm interesting in learn!!!

Post Reply

Return to “FAQ”