Sí me ha llegado ya la confirmación.[/quote] Uno de los datos necesarios al enviar el correo era el usuario dentro del foro... ¿Cómo es que gdl tiene la confirmación cuando se registró 2 días después de que yo lo enviara? (ver perfil de gdl)
Ses por lo que me consta, han respondido a todos via mail, confirmando su participacion.
Este lunes, les pedire que revisen tu caso, creo que tb estara bien que pongan una lista publica.
Un saludo.
No te pongas nervioso sés.
De todas las maneras voy a tener menos bytes que tú ;)
Cita de: "gdl"De todas las maneras voy a tener menos bytes que tú ;) Ya me da igual, o lo enviaba o me explotaba la cabeza -.- ...¿Tienes menos que cronodragón (129 con el include)?
Cita de: "sés"...¿Tienes menos que cronodragón (129 con el include)? En efecto. B)
¿128? ¿127?
(ses) ¿100?
Citar¿100? He hecho unas búsquedas de árboles de expresión con backtracking y las únicas expresiones que he encontrado eran modulares (% en C) y necesitaban unos 120bytes. Puede que existan expresiones más cortas que no usen la aritmética modular, pero lo dudo porque el problema rezuma congruencias por todas partes. :rolleyes: Quizá algo no lineal... <_< Luego añadimos un puñadillo de caracteres más para centrar el cuadrado y que las diagonales sumen la constante mágica, que también es requerido. Eso sí, puede que haya algún truquillo de C que te coma algunos caracteres, pero lo dudo mucho porque llegué a los 129 bytes de cronodragón únicamente mediantes trucos de C (probablemente que él también usó). La última reducción no se basa en el C si no en las matemáticas. No son muchos bytes menos, pero puede ser la diferencia. Con el *casi* convencimiento de que mi código es el teóricamente más corto, lo envié antes de que otro pudiera llegar al mismo convencimiento. :ph34r: Cuando termine el concurso te lo explico con más detalle ¿vale?
Bueno... yo lo envié antes que tú :P
Malo (asco)
Despues de casi 2.5 horas tengo 299 caracteres :( Creo que erré el camino porque uso malloc :angry: por tanto uso dos bucles uno para generar y otro para imprimir. Por lo que les he leido se puede hacer sin reservar memoria.
Ta gueno el concurso :D
Deberia estar con mi tesis en lugar de estar jugando :rolleyes:
Cita de: "ZeruGiran"Despues de casi 2.5 horas tengo 299 caracteres :( Creo que erré el camino porque uso malloc :angry: por tanto uso dos bucles uno para generar y otro para imprimir. Por lo que les he leido se puede hacer sin reservar memoria.
Ta gueno el concurso :D
Deberia estar con mi tesis en lugar de estar jugando :rolleyes: Bueno, yo lo he hecho sin reservar memoria pero haciendo uso de trucos "guarros". Por lo que he oido matematicamente hay una forma de resolverlo sin hacer uso de matrices pero no me preguntes como porque no lo se :-P.
Bueno, la verdad no he hecho demasiado caso a este concurso porque por mi experiencia sé que pierdo más tiempo del que debo.. XD sin embargo tengo algunos trucos que quizas os ayuden, aunque seguro que la mayoría les conoceis. Los cito de memoria:
- por descontado: uso del condicion?cierto:falso - definicion de variables: en ansic las variables globales por defecto son enteras y se inician a 0, por lo tanto:
void main() { int a = 0; } es lo mismo que a; void main() { }
algún caracter te ahorras.
- para el caso del main: void main(char argc, char* argv[]) es casi lo mismo que: void main(c,v)int c,**v{}. SE hace uso del guarripeich sistema de definir las variables. No sé si en este caso concreto se debe usar.
- nada de usar mallocs y optimizaciones en el algoritmo (esto es obvio pero por si acaso), no se trata de hacer que corra rápido. - aprovechar los for: en un for puedes hacer for(a=0,b=1,e=3,i<4&&y<7;g++,g*=9); esto puede hacer ahorrarte algunos caracteres - típico truco de #define p(x) printf(x) si es rentable en cuanto a caracteres.
No recuerdo ningún truquillo más, auque sé que los había. Si encuentro la web donde se colgaron aquellos códigos la paso por si os resultan fuente de inspiración.
Suerte,saludos
bueno ya que estamos de trucos recordar el usar este tipo de formulas:
a == 0 ? true : false;
columna == N -1 ? '\r' : ' '; <-- un ejemplo de retorno de carro que agrega un espacio
etc ;)
Creo que no es nada educado dar las pistas tan explícitas que estáis dando. Dando estas pistas lo único que se consigue es romper el concurso. :(
Es parte del concurso el buscar esos trucos.
Por favor. Un respeto a los que sí que queremos concursar.
Totalmente de acuerdo.
Si queréis concursar, hacerlo. Esos comentarios sobran.
Cita de: "gdl"Creo que no es nada educado dar las pistas tan explícitas que estáis dando. Dando estas pistas lo único que se consigue es romper el concurso. :(
Es parte del concurso el buscar esos trucos.
Por favor. Un respeto a los que sí que queremos concursar. No te preocupes en cuanto a esos trucos ayudan un poco pero unicamente con eso no vas a conseguir nada. La clave en reducir este programa es en encontrar un algoritmo eficiente en cuanto a ram, es decir, que no requiera generar una matriz en memoria.
CitarNo te preocupes en cuanto a esos trucos ayudan un poco pero unicamente con eso no vas a conseguir nada. La clave en reducir este programa es en encontrar un algoritmo eficiente en cuanto a ram, es decir, que no requiera generar una matriz en memoria. En cualquier caso y al dar una pista en mitad del plazo (y dado que en el concurso tal y como está ahora sólo se puede enviar una participación) se están creando desigualdades entre los que han enviado ya su participación y los que todavía no han descubierto que existe el concurso. Sobre todo si es como a mí ¡¡que no he aplicado alguna de las técnicas que se han dicho y ya lo envié!! (nooo) ¡Tonto! ¡Tonto! ¡Tonto! (nooo)
gdl:
¿A qué viene es queja en el foro de MQO con enlace incluído a este hilo? Entiendo tu mosqueo (a mí tb me jode), pero una cosa es que siente mal que algunos den pistas y otra es lo que has puesto en el foro. ¿Qué pasa, que ahora te unes a los "saboteadores"? ¿Para qué te quejas tanto si luego tú te comportas igual? En vez intentar que esos mensajes se borren, lo aireas en los foros de MQO: "¡hey, chicos, aquí hay pistas!" <_<
La regla de "un envío por persona" me parece perfecta. Si lo has enviado y ahora descubres que puedes rebajar... pues macho, usa el remedio casero: ajo y agua.
-= EDIT =- Lo mejor que podrías hacer es borrar tu mensaje de MQO y esperar a que un administrador borre los de este foro.
Citar"¡hey, chicos, aquí hay pistas!" Aún así, creo que hecho bien. El link a este foro es para que todos los concursantes (y no sólo los que lean este foro) tengan las mismas oportunidades (aun a costa de hacer más difícil que yo gane). También espero que los administradores borren los mensajes, aunque creo que el daño está ya hecho y las pistas llevan ya bastante tiempo en línea. Incluso, si se borrasen, tendrían ventaja los que las hubieran leído. A todos los que crean que he obrado mal, les pido disculpas. Empezando por sés. Lo siento.
Estoy en mi derecho de poner lo que quiera, además, este foro es público y cualquiera puede leer esos consejos. Desde luego el ánimo de esos consejos era para ayudar a la gente de por aquí con el objetivo de que se consiguieran los menos caracteres posibles.
Otra cosa, si ya lo has enviado (hablo para todos) y podrías haberte beneficiado de lo que he puesto, quizás deberías olvidarte del premio y pensar en que es posible que haya gente que sepa mejor que tú optimizar el código y por tanto no lo merezcas.
Por esa regla de tres si hay un concurso de programación de juegos deberíamos borrar del foro todos los post referentes a ese tema para que todo el mundo tenga "las mismas oportunidades" y que así "tengan que buscarse la vida en internet" (stratos no es internet?).
Por último considero que no es descortés y maleducado poner unos consejos, que repito, SIRVEN PARA TODO EL MUNDO ya que este foro es ABIERTO AL PÚBLICO y que desde luego no van a hacer ganar a nadie porque estoy seguro que el que gane sabía esos y muchos más. Recuerdo que en este pais hay libertad de expresión y lo avala la Constitución, con lo cual no quiero niñerías.
PD: solo espero que los administradores de este foro tengan un mínimo de criterio y no borren lo que he puesto.
Puedes encontrar miles y miles de paginas webs via google explicando esos trucos y muchisimos mas. Que vas a hacer... prohibir que participen los que han usando la web? Entonces no quedaria ni un solo participante. Cualquiera puede aprender los trucos pero lo divertido es saber aplicarlos y ver los inventos que se monta la gente para reducir el programa al maximo.
Cita de: "samsaga2"Puedes encontrar miles y miles de paginas webs via google explicando esos trucos y muchisimos mas. Que vas a hacer... prohibir que participen los que han usando la web? Entonces no quedaria ni un solo participante. Cualquiera puede aprender los trucos pero lo divertido es saber aplicarlos y ver los inventos que se monta la gente para reducir el programa al maximo. Estoy de acuerdo con lo que dices y también con lo que dice ethernet. Permíteme que te plagie un poco. Creo que un concurso de este tipo es divertido por distintas razones: - Buscar información - Aprender los trucos - Aplicar los trucos - Ver los inventos para reducir el programa al máximo - La competición Entonces, estaréis conmigo que - Proporcionar información - Enseñar trucos - Dar ejemplos de códigos - Proporcionar inventos para reducir el programa al máximo - Dar más ventajas a unos participantes que a otros Rebaja el disfrute del concurso. Cuando me refiero a la educación, me refiero a respetar a los demás, y en particular el difrute del concurso de los participantes. No es mi intención censurar (ni que el administrador censure) nada de lo dicho. De hecho, gracias a los trucos de ethernet he aprendido algunas cosas que no sabía.
Estamos de acuerdo en que esos "trucos" no van a ayudar al que gane, pero recordemos que esto es un concurso. No veo lógico que se den pistas relacionadas con ningún concurso.
El concurso consiste en, además de encontrar un algoritmo eficaz, saberse estos "trucos" del lenguaje. El que concurse tiene que saberlo o saber dónde buscarlos. Resumiendo: Es un concurso y los concursantes se lo tienen que currar solitos.
¿Qué pasaría si yo ya supiera que no voy a ganar y publico mi código? Con eso lo único que haría sería fastidiar a todos los que ya lo hayan enviado. Probablemente en mi código haya algo que otro no haya visto y pueda utilizar... o alguien tenga algo que yo no y lo aplique a mi código, lo modifique, lo envíe y gane.
Repito, esto es un concurso, el que no quiera participar debería quedarse al margen y ponto.
Por cierto ethernet, tu libertad acaba donde empieza la de los demás. Eres totalmente libre de hacer lo que te venga en gana siempre que no perjudiques a nadie. Y explicar estos trucos solo puede perjudicar a los que ya lo enviamos.
Como dice samsaga2, en Internet puedes encontrar estos trucos... pues bien, que los busquen si no los saben. ¿En cuántos concursos se ayuda a los participantes?
Lo hecho hecho está, pero agradecería que nadie pusiera nada más y siga entorpeciendo el concurso.
No entiendo este conflicto que se ha generado. No veo ninguna prohibicion a leer foros de programacion para aprender trucos, o incluso hacer consultas si te viene en gana.
Yo no veo problema con que la gente hable en foros de programacion, de programacion. Nadie a puesto la version mas reducida posible y si la pusiera despues de enviarlo tampoco habria problema, por que seria el primero en enviarlo.
gdl, piensa que solo con los trucos de ethernet no se gana un concurso asi, y que tu tienes la ventaja de tenerlo enviado antes.
saludos.
Umh, creo que hay algo que hay que matizar: creo que no hubiera sido correcto (aunque prefectamente posible) el exponer el código o un algoritmo concreto respecto al concurso, sin embargo yo he puesto unos trucos generales que no tienen para nada que ver con el concurso y que se pueden encontrar en internet con facilidad.
Solo me queda desearos suerte y que gane el mejor, no voy a hacer ningún comentario más acerca de esto
saludos
Cita de: "_Grey"gdl, piensa que solo con los trucos de ethernet no se gana un concurso asi, y que tu tienes la ventaja de tenerlo enviado antes. Él mismo ha dicho que no había caído en alguna cosa que se ha dicho, echa cuentas. Si gdl dice que tiene algo menos de 129... imagina que hay alguien en su caso, lo reduce y lo envía. Ganará a gdl solo porque algunos han decidido poenr algunos trucos para el concurso. Si eso se hubiera hecho el primer día a nadie le habría importado tanto, per oa estas alturas no tiene ningún sentido. Y eso no es simplemente "hablar de programación", es explicar cosas relacionadas con un concurso que no ha terminado aun. CitarNadie a puesto la version mas reducida posible y si la pusiera despues de enviarlo tampoco habria problema, por que seria el primero en enviarlo. No puedes pensar eso en serio. Cualquiera podría coger ese código y reducirlo por algún sitio que se pasara por alto o aplicar algo de ese código al que ya tuviera. Citarhe puesto unos trucos generales que no tienen para nada que ver con el concurso y que se pueden encontrar en internet con facilidad. Lo primero es que se trata de que los concursantes se busquen la vida y lo segundo... ¿que no tienen que ver con el concurso? Yo alucino (ses) No entiendo nada, vamos a ver. Que no se ha hablado de esas cosas "por casualidad", eso es una simple y llana interferencia en un concurso inacabado. A ver, ¿alguien que participe ha revelado alguno de sus trucos? NO. Pues eso.
Otro enlace..... http://canalc.gulo.org/se hicieron un par de concursos....viendo los codigos se pueden cojer ideas. yo me planto en 176 y de ahi no bajo ( sin includes )
Cita de: "igon"Otro enlace..... http://canalc.gulo.org/
se hicieron un par de concursos....viendo los codigos se pueden cojer ideas.
yo me planto en 176 y de ahi no bajo
( sin includes ) Exactamente este es el concurso que me refería y que organizamos en el canal #c del hispano
Cita de: "zupervaca"a == 0 ? true : false; Hombre, para poner eso mejor pones a?false:true; Sobre el tema del linchamiento a ethernet, si no sabíais esos trucos (que están por otras partes) pues no merecéis ganar, así que sigue siendo justo. Y si alguien no se los sabía y los ha visto ahora y ha mejorado el código, mejor para él por haber arriesgado a esperarse, volvéis a no merecer ganar. Para buscar información en internet hace falta alguien que la ponga. (twist)
Cita de: "Mars Attacks"Cita de: "zupervaca"a == 0 ? true : false; Hombre, para poner eso mejor pones a?false:true;
Para poner eso pones !a
:P
Hola a todos... llevo 8 dias con esto y no lo puedo creer... solo llevo
224 caracteres ANSI C 2 Warning Imprime alineado a la izquierda y separando las columnas por tres espacios recibe datos por scanf evalua que solo se procesen los datos permitidos tiene el #include stdio.h Como es ANSI C NO USA NADA de la conio.h(por ejemplo getch o gotoxy) Metodo de La Loubere
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Estoy desesperado!!!! no se que mas se le puede hacer!!!
no encuentro metodos mas cortos!!!! no encuentro tecnicas o trucos diferentes de los que ya sabia y de uno que mencionaron que nyo no sabia!!!!
Y las veces que he tratado de hacer metodos mas cortos... o bien no sirven o bien sirven pero son mas largos...
Ahhhhhhhhhhhhhhhhhhhhhhhhh
Cronodragóooonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn me tienes al borde de un ataque... me vas a ganar!!! y eso no es lo malo lo malo es que me vas a ganar por una enoooooooooooooooooooooooooorme diferencia.
Y ademas hay gente que lo ha hecho mas corto!!!!
donde esta el truco!!! no he podido!!! y no soy novato en C... se un poco mas que el promedio.. pero aun asi no puedo reducir mi codigo mas de 100 caracteres para lograr ganarles!!! _________________ (asco)
Supongo que tienes dos bucles (rellenar e imprimir) y eso hace que ocupe más. Aun así, puedo decirte que yo tenía un código de menos de 150 (sin el include) que lo hacía así.
Cita de: "sés"Supongo que tienes dos bucles (rellenar e imprimir) y eso hace que ocupe más. Aun así, puedo decirte que yo tenía un código de menos de 150 (sin el include) que lo hacía así. Sés... dame cita un dia de estos quiero un hijo tuyo (genial)
(ses) *huye*
Cita de: "ethernet"Cita de: "Mars Attacks"Cita de: "zupervaca"a == 0 ? true : false; Hombre, para poner eso mejor pones a?false:true;
Para poner eso pones
!a
:P es un ejemplo de una formula para que lo vea la gente, ¿y para el retorno de carro no la podeis optimizar mas? :P saludos
Cita de: sesSupongo que tienes dos bucles (rellenar e imprimir) y eso hace que ocupe más. Aun así, puedo decirte que yo tenía un código de menos de 150 (sin el include) que lo hacía así. No entiendo como puedes hacerlo en un solo bucle sin usar gotoxy :blink:, se supone que si uso el gotoxy si logro hacerlo asi pero no se puede usar porque debe ser ANSI C. O_O Toy perdido!!!
Cita de: "sés"Supongo que tienes dos bucles (rellenar e imprimir) y eso hace que ocupe más. Aun así, puedo decirte que yo tenía un código de menos de 150 (sin el include) que lo hacía así. No entiendo como puedes hacerlo en un solo bucle sin usar gotoxy :blink: se supone que si uso el gotoxy si logro hacerlo y logro quedar por debjo de 200 Pero no se puede usar porque debe ser ANSI C. O_O Toy perdido!!!
Cita de: "zupervaca"Cita de: "ethernet"Cita de: "Mars Attacks"Cita de: "zupervaca"a == 0 ? true : false; Hombre, para poner eso mejor pones a?false:true;
Para poner eso pones
!a
:P es un ejemplo de una formula para que lo vea la gente, ¿y para el retorno de carro no la podeis optimizar mas? :P
saludos Bueno, la fórmula de ejemplo la había puesto yo un par de post antes que tú, aunque está bien repetir para que se entere bien todo el mundo. Con respecto a esto: columna == N -1 ? '\r' : ' ';
se puede optimizar: columna - N + 1 ? ' ' : '\r';
1 byte :P ah y cambiado ' ' y '\r' por su número seguro que se ahorran caracteres (recordar que 'c' es entero no un char) o sea: columna - N + 1 ? 13 : 32;
en total 1 + 1 + 2 = 5 bytes realmente no sé en qué contexto y con qué fin se usa así que puedo haber metido la gamba. saludos
que divertido, hacerun programa qe al final acabe como
p = a : 1 :- 2 - N + 1 ? 13 : 32 + 3: 2 ? 12 == 12 ? (1 :- 2 - N + 1 ? 13 : 32);
ethernet, el concurso NO HA TERMINADO, ¿puedes hacer el favor de dejar de interferir y de ayudar a los participantes?
Sabes perfectamente de qué trata el concurso, así que deja de dar formas de optimizar. De eso precisamente trata el concurso.
Sois todos unos frikis... :D :D
Venga, no os piquéis así que parecéis niños chicos... :P
una cosa es optimizar y otra muy diferente ahorrase bytes :D
· columna == N -1 ? '\r' : ' '; <-- en esta se realiza una resta una comprobacion y se obtiene el resultado
· columna - N + 1 ? 13 : 32; <-- en esta se realiza una resta una resta, una suma, la comprobacion y se obtiene el resultado
eso no es optimizar es agregar un ciclo mas de cpu ;)
Cita de: "zupervaca"una cosa es optimizar y otra muy diferente ahorrase bytes :D
· columna == N -1 ? '\r' : ' '; <-- en esta se realiza una resta una comprobacion y se obtiene el resultado
· columna - N + 1 ? 13 : 32; <-- en esta se realiza una resta una resta, una suma, la comprobacion y se obtiene el resultado
eso no es optimizar es agregar un ciclo mas de cpu ;) En el contexto del hilo optimizar el ahorrarse bytes de código, esto me parece subrealista amigos, me parece que he perdido el rumbo. ¿?
Cita de: "zupervaca"una cosa es optimizar y otra muy diferente ahorrase bytes :D
· columna == N -1 ? '\r' : ' '; <-- en esta se realiza una resta una comprobacion y se obtiene el resultado
· columna - N + 1 ? 13 : 32; <-- en esta se realiza una resta una resta, una suma, la comprobacion y se obtiene el resultado
eso no es optimizar es agregar un ciclo mas de cpu ;) Ni mucho menos, == tambien es una operacion y mas costosa en cuanto a ciclos de CPU que hacer una suma y luego comprovar que sea distinto de cero.
Osea zupervaca que has metido la gamba por los cuatro costados XD
Cita de: "samsaga2"Cita de: "zupervaca"una cosa es optimizar y otra muy diferente ahorrase bytes :D
· columna == N -1 ? '\r' : ' '; <-- en esta se realiza una resta una comprobacion y se obtiene el resultado
· columna - N + 1 ? 13 : 32; <-- en esta se realiza una resta una resta, una suma, la comprobacion y se obtiene el resultado
eso no es optimizar es agregar un ciclo mas de cpu ;) Ni mucho menos, == tambien es una operacion y mas costosa en cuanto a ciclos de CPU que hacer una suma y luego comprovar que sea distinto de cero. vamos a ver, ¿tu que crees que por que no haiga un == no se realiza una comprobacion? es que me parto el pecho :P sobre lo del contexto del hilo vale, pero sobre esto ultimo ni hablar :D
Al fin entendi como no usar una matriz y como hacerlo todo en un solo for. :angry:
Ahora a quitar caracteres. Pero eso ya sera mañana. :)
Menudos estais hechos :P
con un for si, pero me ocupa mas :(
y... sin matriz ¿? un simple array ??
La discusión de si es más eficiente hacer == o una resta tiene poco sentido, entre otras cosas porque el concurso no se refiere a ninguna arquitectura ya que se trabaja sobre algo supuestamente standard, ansi C, y que "debe" compilar cualquier compilador de C. En ciertas arquitecturas funcionará mejor una cosa y en otras otra, depende de para qué esté hecha esa arquitectura.
saludos
Ni matriz, ni array, ni nada de memoria reservada. B)
Tiempo invertido: 1.5 Horas; Tiempo invertido a mi tesis: 0 horas;
:D
Cita de: "ethernet"La discusión de si es más eficiente hacer == o una resta tiene poco sentido, entre otras cosas porque el concurso no se refiere a ninguna arquitectura ya que se trabaja sobre algo supuestamente standard, ansi C, y que "debe" compilar cualquier compilador de C. En ciertas arquitecturas funcionará mejor una cosa y en otras otra, depende de para qué esté hecha esa arquitectura.
saludos Ya puestos a sacarle punta al asunto: El compilador lo convierte en un CMP o en un SUB, y ambas instrucciones tardan casi los mismos ciclos de reloj (ciclo arriba ciclo abajo). Me refiero a las antiguas instrucciones del 80386, porque ahora con tanta caché y paraleleces no se sabe ni lo que le cuesta, pero bueno... 11 salu2
220
Creo que muchos estan solo fanfarroneando con lo de los 130 o menos... incluso 150 parece ser muy poco...
en un equema sencillo que diseñe nada mas para ver cuanto es el minimo de caracteres necesario para llenar e imprmir en la matriz o vector segun sea el caso.... y asumiendo que se usa solo un linea para imprimir, incluytendo el scanf y las validaciones de que solo sea 3,5,7,9, los include y nada mas, es decir sin nada que ver con el cuadrado... pues....
no dan menos de 121 caracteres.... acaso es posible resolver el cuadrado con nueve caracteres??? no creo.. al menos no de la manera que se llena un cuadrado magico impar que cumple la suma con todo y diagonales.. incluso pensar en 150 caracters es demasiado corto ya que segun mis cuentas eso solo serian 30 caracteres para dedicarce al algoritmo y con ello no se alcanzan a hacer las minimas comprobaciones de desbordmiento de indices dentro de la matriz, vector o lo que sea...
tengo mis dudas acerca de que lo que esten diciendo sea cierto y tambien las tengo en que puede que sea cierto pero es muy poco probable de que cumplan con ANSI C o que hagan todas las validaciones o que en efecto hagan lo que se pide tal cual.
:idea:
Todo esto esta muy sospechoso....
Solo me falta descartar la opcion de no usar matrices ni vectores... pero no tengo idea de como hacen para imprimirlo sin usar matrices ni vectores ya que sin gotoxy es casi imposible imprimirlos en orden al menos con la cantidad de caracteres que mencionan...
Cita de: "JuanK"220
Creo que muchos estan solo fanfarroneando con lo de los 130 o menos... incluso 150 parece ser muy poco...
en un equema sencillo que diseñe nada mas para ver cuanto es el minimo de caracteres necesario para llenar e imprmir en la matriz o vector segun sea el caso.... y asumiendo que se usa solo un linea para imprimir, incluytendo el scanf y las validaciones de que solo sea 3,5,7,9, los include y nada mas, es decir sin nada que ver con el cuadrado... pues....
no dan menos de 121 caracteres.... acaso es posible resolver el cuadrado con nueve caracteres??? no creo.. al menos no de la manera que se llena un cuadrado magico impar que cumple la suma con todo y diagonales.. incluso pensar en 150 caracters es demasiado corto ya que segun mis cuentas eso solo serian 30 caracteres para dedicarce al algoritmo y con ello no se alcanzan a hacer las minimas comprobaciones de desbordmiento de indices dentro de la matriz, vector o lo que sea...
tengo mis dudas acerca de que lo que esten diciendo sea cierto y tambien las tengo en que puede que sea cierto pero es muy poco probable de que cumplan con ANSI C o que hagan todas las validaciones o que en efecto hagan lo que se pide tal cual.
:idea:
Todo esto esta muy sospechoso....
Solo me falta descartar la opcion de no usar matrices ni vectores... pero no tengo idea de como hacen para imprimirlo sin usar matrices ni vectores ya que sin gotoxy es casi imposible imprimirlos en orden al menos con la cantidad de caracteres que mencionan... Pero eso es dando por sentado que tienes que rellenar una matriz. Y si una cosa estan de acuerdo todos los que han conseguido reducir el programa la maximo es que hay que hacerlo sin matriz. Eso permite hacer cosas como por ejemplo imprimirlo todo usando tan solo un printf ya que puedes aprovechar el bucle principal. No he conseguido llegar a los 150 (me quede en los 194) pero creo que si se puede llegar. De cualquier forma, en Abril acabaremos por salir de dudas.
Lo primero, el post tuyo diciendo que 120 bytes o inclusive 150 te parece demasiado poco y lo pones en duda no te hace merecedor de ganar. Ese pensamiento de "como yo no he podido es imposible" te hará fracasar en la vida.
Cuando empecé me salieron unos 400 bytes con comprobaciones y demas.......pensaba que sería imposible, pero fijate, actualmente llevo 155 bytes..........asi que en vez de quejarte e indirectamente pedir ayuda, intenta buscar info por inet o simplemente intentar minimizar tu codigo.
Todos los caminos llevan a roma.......tarda menos el q da 1 vuelta a la tierra sin pararse, que el que se para a preguntar en cada esquina caminando en linea recta......otra cosa es q la distancia recorrida sea mas......
Cita de: "shephiroth"Lo primero, el post tuyo diciendo que 120 bytes o inclusive 150 te parece demasiado poco y lo pones en duda no te hace merecedor de ganar. Ese pensamiento de "como yo no he podido es imposible" te hará fracasar en la vida. la distancia recorrida sea mas...... -----------------------------------
:( :mellow: Fracasare en la visa buahahahahaha :'( jejeje no lo tomes tan a pecho... tengo derecho a dudar :lol: Tambien cuando comcencé tenia casi 400 bytes (39?) ya ahora solo 220 ya con eso he ganado mucho en este concurso... la verdad ganar es lo que menos me interesa, ya he ganado bastante con todo lo que he aprendido reduciendo mi codigo y buscando en internet y en muchas fuentes... no creas que me la he pasado mirando para el techo. :P Cita de: "JuanK"Todo esto esta muy sospechoso....
Solo me falta descartar la opcion de no usar matrices ni vectores... pero no tengo idea de como hacen para imprimirlo sin usar matrices ni vectores ya que sin gotoxy es casi imposible imprimirlos en orden al menos con la cantidad de caracteres que mencionan... Ademas dije esto al final de mi post... soy muy conciente de que pueden haber otras opciones pues no tengo la ultima palabra. Tengo derecho a dudar no? (uoh) Por otro lado aunque tu actitud fue un poco pasada conmigo lo cierto es que si es una buena actitud pues tambien he sido duro con las personas en los foros que modero pues muchos realmente solo quieren que les hagan todo.... http://foros.solocodigo.com/index.php?showuser=2008No pretendo que me digan como hacer las cosas.. haria falta que fueran 'locos' para que me regalaran su trabajo (twist) pero no perdia nada tanteando a que alguien dijera 'Ohhh si la verdad he mentido para ganar tiempo...' o cosas asi ;)
Para que no digan que son mentiras...
#include<stdio.h> int x,y,M[xx],n,N; void main() { scanf("%d",&n); if(n==3||n==5||n==7||n==9) { while(N==6) { M[x]=++N; printf("%d",M[x]); } } }
He ideado esto para el ejemplo... no funciona pero es por estop que surgio mi duda... como se daran cuenta este codigo no hace nada, solo imprimir como un vector y hacer unas validaciones....e imprime en una linea asi no mas ya son 131 caracteres(si espacios ni saltos) por supuesto que lo podemos reducir de tamaño aplicando cosas que muchos sabemos y asi quedaria de 109 o para algunos quedaria aun menor. Ahora este ejemlo no hace nada y si le agregamos el algotimo del cuadrado y las validaciones necesarias??? en el caso de que se resuelva con 129 caracteres solo nos quedan 23 disponibles en el ejemplo, que por cierto no sirve para la impresion... No se como le han hecho pero sacar todo el algoritmo y validaciones en menos 23 caracteres es muy dificil!!! O_O
Por eso eran mis dudas.
Seguire buscando. :ph34r:
Cita de: "JuanK"Para que no digan que son mentiras...
#include<stdio.h> int x,y,M[xx],n,N; void main() { scanf("%d",&n); if(n==3||n==5||n==7||n==9) { while(N==6) { M[x]=++N; printf("%d",M[x]); } } }
He ideado esto para el ejemplo... no funciona pero es por estop que surgio mi duda... como se daran cuenta este codigo no hace nada, solo imprimir como un vector y hacer unas validaciones....e imprime en una linea asi no mas ya son 131 caracteres(si espacios ni saltos) por supuesto que lo podemos reducir de tamaño aplicando cosas que muchos sabemos y asi quedaria de 109 o para algunos quedaria aun menor. Ahora este ejemlo no hace nada y si le agregamos el algotimo del cuadrado y las validaciones necesarias??? en el caso de que se resuelva con 129 caracteres solo nos quedan 23 disponibles en el ejemplo, que por cierto no sirve para la impresion... No se como le han hecho pero sacar todo el algoritmo y validaciones en menos 23 caracteres es muy dificil!!! O_O
Por eso eran mis dudas.
Seguire buscando. :ph34r: Siento decepcionarte pero a ese codigo que has presentado se la pueden sacar unos veinte caracteres mas o menos sin perder funcionalidad. Ademas estas poniendo una matriz quitala y vuelve a hacer cuentas.
QUOTE (samsaga2) | Siento decepcionarte pero a ese codigo que has presentado se la pueden sacar unos veinte caracteres mas o menos sin perder funcionalidad. Ademas estas poniendo una matriz quitala y vuelve a hacer cuentas.[/quote]
Lo se, pero no me puedo poner a mostrarlo mas corto porque sino algunas personas del foro me van a decir que estoy dando pistas como le sucedio a Ethernet
Por eso decia esto:
QUOTE (JuanK) | asi no mas ya son 131 caracteres(si espacios ni saltos) por supuesto que lo podemos reducir de tamaño aplicando cosas que muchos sabemos y asi quedaria de 109 o para algunos quedaria aun menor.[/quote]
Por otro lado el codigo no usa una matriz usa un vector, aunque he visto que alguien dijo que se debe hacer sin matriz ni vectores ni nada.. pero aun no se ma ha ocurrido como, Actualmente lo tengo con un vector y lo llevo por 219 caracteres :'(
Tranquilo que si todo el código que pones es así no habrá protestas...
jejejej si por eso lo arme especialmente de esa manera... (nooo)
No vayan a creer que codifico asi de mal... aunque si quieren coloco el que tiene reducido el codigo ;)
O_O Pero no me conviene porque ... que tal alguien me gane!!!! bahhh! (genial)
Bueno, está bien el concurso este, la verdad es que yo no participé porque no tengo ni idea de algoritmos para calcular el cubo, y me daba palo buscar. Aunque no me presente tenia curiosidad y me salen 11 bytes dentro del if para saber el valor correcto introducido. ¿está bien? ¿lo haceis en menos? bueno, si eso lo hablamos despues del consurso, que está la cosa caliente...
un saludo
14 bytes contando los parentesis (genial)
veo que soy tremendamente malo en esto :(
Contando parentesis 13
CitarPor otro lado el codigo no usa una matriz usa un vector, aunque he visto que alguien dijo que se debe hacer sin matriz ni vectores ni nada.. pero aun no se ma ha ocurrido como JuanK, sin vector ni array: while(N==6) { printf("%d",N++); }
No parece muy dificil, no??? Pasando a otra cosa...... 12, sin contar if ni parentesis. De todas formas ya no uso if :P :P :P CALLAAAAA!!! (se escucha de fondo en tono de orden.....) :rolleyes: Saludos.
Tampoco uso if's realmente no tendo parentesis....solo validar que sea 3, 5 7 o 9 son 11 caracteres :)
QUOTE (_Grey) | JuanK, sin vector ni array:
CODE
while(N==6) { printf("%d",N++); }
No parece muy dificil, no???[/quote]
Hola _Grey sabes no soy tan estupido como crees (grrr)
Obviamente lo de los arrays me referia en el algoritmo del cuadrado propiamente dicho, trata de leer antes de Fantochar. <_<
CitarHola _Grey sabes no soy tan estupido como crees mad2.gif Ups! perdona, pero lei esto... CitarPor otro lado el codigo no usa una matriz usa un vector, aunque he visto que alguien dijo que se debe hacer sin matriz ni vectores ni nada.. pero aun no se ma ha ocurrido como y pense que por ahi estaba el asunto.... sorry..... Saludos.
hola, bueno ya no me siento tan idiota...
voy 147 caracteres sin usar matrices ni vectores e imprimiendo todo en una sola linea :ph34r:
umm bueno me faltaba controlar unas cosas ya las coloque pero me aumentaron unos bytes.. aunque tambien reduje unos cuantos... el if lo hago con 7 bytes dentro del parentesis y funciona OK para todos los casos. (uoh)
Veremos que no haya que cambiarlo luego (ole)
:blink: umm tendre que aprender mucha matematica para poder aproximarme a los 130
while(N==6) { printf("%d",N++); }
¿Y si sólo hay una orden dentro del while para qué quieres los "{"? Si en vez de N==6 pones N-6 también te ahorras uno.
Ethy, ¿me explicas dónde colocas la parte de sentencias del true y del false en tu "!a"? No he entendido tu cambio.
Cita de: "Mars Attacks"Ethy, ¿me explicas dónde colocas la parte de sentencias del true y del false en tu "!a"? No he entendido tu cambio. mande?? !a devolverá true si 'a' es cero, y false en caso contrario.
Cita de: "CoLSoN2"Cita de: "Mars Attacks"Ethy, ¿me explicas dónde colocas la parte de sentencias del true y del false en tu "!a"? No he entendido tu cambio. mande??
!a devolverá true si 'a' es cero, y false en caso contrario. déjalo colson, es medio grafo, no hay nada que hacer :P marsy ;@@
Capullos de mierda, con "false" y "true" me refiero a "sentencias que hacer en caso de que a sea falso" y "sentencias que hacer en caso de que a sea verdadero" <_<
Ale, iros a jugar con los playmobil, anda. Tanto código os corroe las neuronas :P
146 (uoh)
gdl , me imagino que cuando hablas de backtracking utilizas recursividad verdad? O_O Ni se me ocurre como aplicarla sin aumentar caracteres.
Llegue a los 129 de cronodragon quitando esto:
#include = 17 caracteres, pero el mismo cronodragon dijo que si lo usaba asi que tendre que buscar 17 o mas bytes que me sobren, lo cual segun veo no sucede en nin caso...
Asi qye tendre que seguir buscando pistas matematicas antes de enviarlo y que no me pase lo de _Grey que lo envio antes de mejorarlo mas de lo que lo habia hecho.
143 :huh:
De donde diantres puedo descontar 23 caracteres o al menos 14 para igualar a cronodragon? (grrr)
Cita de: "JuanK"gdl , me imagino que cuando hablas de backtracking utilizas recursividad verdad? Usé el backtracking para comprobar que la estructura de la expresión matemática que genera el cuadrado mágico es la de mínima longitud. No usé recursividad en el propio código porque lo aumenta de tamaño (unos cinco bytes). Y eso no es bueno :D
CitarUsé el backtracking para comprobar que la estructura de la expresión matemática dirás que soy muy ignorante... pero entonces que es hacer backtracking? como se hace? o con que temas se relaciona para poder buscar y aprender a hacerlo? Estudias matematicas o algo asi?
Cita de: "JuanK"Llegue a los 129 de cronodragon quitando esto:
#include = 17 caracteres, Pero eso es obligatorio ^_^
Cita de: "sés"Cita de: "JuanK"Llegue a los 129 de cronodragon quitando esto:
#include = 17 caracteres, Pero eso es obligatorio ^_^ En serio?? Ya he leido eso 1' de veces... nadie ha dicho que no lo sea.
Citarpero entonces que es hacer backtracking? Es un esquema/patron para resolver problemas a lo bruto. Consiste en probar casi todas las posibles soluciones a un problema hasta encontrar la/s solucion/es correctas. Citarcomo se hace? Lo importante es definir el problema y su espacio de soluciones. Un ejemplo tonto: dados dos numeros x e y. Si 1<=x<=10 1<=y<=10 ¿cuando sumarán x+y=10? Espacio de soluciones: todos los pares (x,y) con 1<=x<=10 1<=y<=10 ...tendrás que probar las combinaciones... Se puede hacer recursivamente o sin recursividad, esto no tiene que ver con backtracking. Lo que caracteriza a backtracking es que recorre "un arbol" de soluciones, donde cada nodo es una posible solucion y puede descartar ramas enteras con lo que acelera algo el proceso. Citaro con que temas se relaciona para poder buscar y aprender a hacerlo? Algoritmos. Libros: Aho, A.V.; Hopcroft, J.E.; Ullman, J.D.: Estructura de datos y algoritmos. Addison- Wesley, 1988. - Brassard, G.; Bratley, P.: Fundamentos de Algoritmia. Prentice-Hall, 1998. - Cormen, Leiserson, Rivest: Introduction to algorithms. MIT Press, 1991. Un saludo
(ole) te debo una mil gracias nostromo!!!
Veremos si puedo hacer algo con lo que tengo del algoritmo sino pues ya aprendi algo nuevo (nooo)
Gracias de nuevo.
Aprovechando que sale el tema; me quede impresionado cuando lei esto de gdl: CitarHe hecho unas búsquedas de árboles de expresión con backtracking y las únicas expresiones que he encontrado eran modulares (% en C) y necesitaban unos 120bytes. Mas que nada por que no tengo idea de que queria decir. Despues de buscar un poco, encontre algo de arboles sintacticos en un libro de compiladores, cuando dices "árboles de expresión con backtracking" te refieres a que has optimizado una determinada expresion haciendo un arbol con ella ,nop??? Ni sabia que se podia hacer .... en mi libro de "Fundamentos de programacion" el trato que se le da a los arboles se aleja de esas esquisiteces... me tendria que comprar algo mas actualizado supongo. Saludos, y suerte!
Un backtracking supongo que sabes que es, pruebar todas las combinaciones con algunas restricciones de corte y en orden por corazonada, o sea hago un algoritmo que combine todas las expresiones posibles restringiendo a que sean validas y que den el resultado que quiero con el minimo largo posible y lo dejo correr, el algoritmo es np y por ende no seria practico pero lo bueno es que lo puedes dejar corriendo y el ultimo dia tomas la mejor solucion que has hecho, de todas maneras el algoritmo seria muy complejo y dudo que realmente lo halla implementado de la forma que se me ocurre a mí, seguramente pudo haber restringido a la parte matematica estricta con aritmetica simple y tan solo ir de cabeza a la expresion de la funcion ElementoDelCuadradoMagicoDeNImpar(n,x,y), o sea con las operaciones basicas, de todos modos el algoritmo seria complicado y digno de aplaudir... Saludos
Cita de: "Pogacha"seguramente pudo haber restringido a la parte matematica estricta con aritmetica simple y tan solo ir de cabeza a la expresion de la funcion ElementoDelCuadradoMagicoDeNImpar(n,x,y), o sea con las operaciones basicas En efecto. Sólo usé las operaciones muy muy básicas. De hecho, he tenido un problemilla con la parentización. Todos los operadores (incluso las constantes porque al ser el N máximo 9, son todas de un carácter) ocupan un caracter. ¡Excepto el de paréntesis! Me he dado cuenta que tener el árbol con el menor número de nodos no es igual a tener la expresión más corta. Así que, hoy por hoy ya no estoy seguro de tener la expresión mínima teórica. (grrr)
cielos ahora tendre que centrarme solo en alcanzar o vencer a cronodragon, aunque con lo que dijiste solo quedaron en claro 2 cosas para mi:
1- Cronodragon tiene el codigo mas corto 2- No he entendido un pito de lo que es el backtracking
Pues una traza de un ejemplo sencillo. Para resolver la ecuación x+y<2 con x e y en el rango entre 0 y 9 lo resolverías así: x=0 y=0 x+y<2? sí -> x=0, y=0 es una solución x=1 y=0 x+y<2? sí -> x=1, y=0 es una solución x=2 y=0 x+y<2? no x=3 y=0 x+y<2? no ... x=0 y=1 x+y<2? sí -> x=0, y=1 es una solución x=1 y=1 x+y<2? no x=2 y=1 x+y<2? no ... y así hasta que se hayan probado todos los valores. Dicho de otro modo: tanto si aciertas como si fallas, vuelves atrás hasta el último cambio y pruebas el siguiente elemento.
oops es demasiado complicado!!! para aplicarlo al sistema que tengo.
alguien tiene una solucion menor 144 caracteres y que no sea cronodragón?
Ahora si, a reducir el tamaño: :)
Primer intento: 225 caracteres. Segundo intento: 181 caracteres. Tercer intento: 174 caracteres.
Y creo que ahi me planto :'(
143
alguien ha hecho menos diferente de cronodragon?
cuarto intento: 172 quinto intento: 167 (shit) (shit) (shit) :angry:
descanso... tv, leche con galletas, telefono. sexto intento: 159 Caracteres :blink:
Ya no veo nada... pero cada vez digo lo mismo y luego encuentro algo :D
Joer algo que era ovio :angry: y ahora estamos en ... 153 caracteres :D Septimo intento.
Octavo 151 Caracteres;
Con solo 3 variables;
146 ñañaña ñañaña :D
3 mas JuanK :angry: :)
Me parece que Cronodragon estaba inventado o tal vez algo se le paso en el codigo. Llegue a tener menos de 140 pero tenia mal la validacion. Luego la corregi y llegue a ??? jejeje :)
Ya envie mi codigo :)
Ya perdi demaciado tiempo :P, pero me diverti mucho ,espero que organisemos mas concursos de estos.
Saludos.
a cuanto llegaste??? espero que no a 143 porque lo habrias enviado primero que yo... (que tramposo (grrr) ) (discusion)
en todo caso creo que lo puedo reducir mas si me pongo con lo del backtracking... despues te cuento :ph34r:
141... espero que no hallas llegado a eso... igual si llegaste no importa aun lo puedo reducir más (twist)
tambien hace tiempo que solo uso 3 variables ñañañaña (genial)
137 :D (ole) (twist) (uoh)
No creo, segun leo, que hayas llegado a eso ZeruGiran. Y eso que aun No he intentado reducir la parte matematica...
jejejeje menos de 137 (twist) (nooo)
:blink: O_O
Yo 142 argggg!! (nooo) No te creo :P
:(
We are living in a freaky world freaky freaky freaky... freaky! We are living in a freaky world freaky freaky freaky... freaky you all!!!
:D Sin ánimo de ofender, ¿eh? Me divierte veros pelear por unos caracteres...
como dijera Trinity en Matrix Reload 'Believe it' (twist)
y ya me estoy aburriendo de tratar de reducir la ecuacion. O_O asi que es probable que lo pase asi.
Enviado, ya me canse. 137 caracteres contados desde MS Word.
esto, te recomiendo que mires mejor el numero de bytes del fichero, seleccionas y Alt+Enter en windows, o boton derecho propiedades.
= aunque se mire el numero de bytes del fichero habria bytes diferentes para el ENTER segun el editor ya que si guardan estilo unix ocuparian un byte y si lo hacen estilo windows ocuparian dos bytes ;)
¿Has leído bien las reglas? Gana el que ocupe menos BYTES el fichero .c
:P
a eso voy
es el mismo vacio que con el inlcude si usan compiladores o editores que guarden los ENTER como CR/LF (la mayoria bajo windows) o si usas editores que solo guarden en CR (la mayoria bajo UNIX) habra desventaja para los que usaron editores comunes en windows y no se fijaron en esto a la hora de enviar sus trabajos.
¿O no has visto nunca esas diferencias en los diferentes editores y/o sistemas operativos?
:P
Creo que todo el mundo ha hecho un solo retorno de linea en su fichero, el que debe haber en la línea del include
un saludo
tr -d '\r' < fichero_win > fichero
Cita de: "fiero"Creo que todo el mundo ha hecho un solo retorno de linea en su fichero, el que debe haber en la línea del include Creo que no entendiste nada de lo que dije. Si digo que un enter usa dos caracteres me refiero a que esos dos caracteres usan dos bytes al menos esto sucede en la mayoria de los editores hechos para windows eso se puede ver en un archivo con esta frase: HOLA PRUEBA DE ENTER
Si se usa un editor de windows y abrimos el archivo en modo binario veremos: 48 4F 4C 41 0D 0A 50 52 55 45 42 41 20 44 45 20 HOLA..PRUEBA DE 45 4E 54 45 52 0D 0A ENTER
Si se fijan los numeros 0D 0A aparecen cada vez que hay un enter estos numeros equivalen a los caracteres nro 10 y 13 de la tabla ASCII los cuales con 10:CR = Retorno de carro 13:LF = Relleno de linea Bien por eso el enter en la mayoria de editores de windows ocupa 2 bytes. Ahora veremos el mismo caso en un editor de unix, este es el resultado de abrir el archivo en modo binario: 48 4F 4C 41 0D 50 52 55 45 42 41 20 44 45 20 HOLA.PRUEBA DE E 45 4E 54 45 52 0D NTER
Si se fijan ahora ya no hay dos caraceres por cada enter sino que solo hay uno: 10:CR = Retorno de carro Por eso aunque halla un solo ENTER en cada archivo, segun el editor que hayan usado ese unico enter puede ocupar uno o dos bytes, lo cual es injusto pues para los que usaron editores tipo widows siempre aparacera un byte mas que para los que usaron editores tipo UNIX. QUOTE (Ethernet) | tr -d '\r' < fichero_win > fichero[/quote] Que es eso? es algo para UNIX?
es un trim, es para cargarse los retorno de carro.
umm ya veo pero entonces el comando quitaria los retornos de carro nada mas... y que ganamos con eso? si igual los de UNIX quedarian sin el CR y los de windows tambien pero consevarian el LF... sigue existiendo un byte de diferencia
Cita de: "JuanK"Creo que no entendiste nada de lo que dije. XD ... Hace más de 10 años que sé el asunto del 10,13 XD... Sólo me refería a que la diferencia será de solo 1 byte, mil perdones un saludillo
Puede que solo sea 1 byte, ahi tamos todos deacuerdo........pero frente a un mismo codigo un usuario de linux sacaría 1 byte menos.....
Imaginate que a dia de hoy tu mandas un codigo de 100 bytes.....yo sin saberlo mañana mando otro diferente tambien de 100 bytes. Segun las reglas a igual tamaño gana el q lo envie antes, pero o, sorpresa!! Tu lo hiciste en linux y tu enter era 1 byte, yo lo hice en wind y mi enter ocupaba 2 bytes.....en resumen, tu codigo sin enter son 99 bytes, y el mio sin enter 98........quien debería ganar????
Sinceramente, en mi opinion lo del include se resolvió mal.....habria que haberlo hecho sin ese include......si es un include "obligatorio" que todos vamos a tener que mas da ponerlo???? Obviamente quisieron "premiar" a los usuarios de linux a la vez que a los usuarios de windows que se buscasen la manera de arreglar ese problema xDD
P.D: Juank te felicito por tu cambio, has conseguido un codigo bastante reducido ;) yo no consigo bajar de 150.....creo q cambiare de sistema >_<
Cita de: "fiero"Cita de: "JuanK"Creo que no entendiste nada de lo que dije. XD ... Hace más de 10 años que sé el asunto del 10,13 XD... Sólo me refería a que la diferencia será de solo 1 byte, mil perdones
un saludillo oops tienes razon he estado muy estresado, mis disculpas.
Cita de: "shephiroth"Puede que solo sea 1 byte, ahi tamos todos deacuerdo........pero frente a un mismo codigo un usuario de linux sacaría 1 byte menos.....
Imaginate que a dia de hoy tu mandas un codigo de 100 bytes.....yo sin saberlo mañana mando otro diferente tambien de 100 bytes. Segun las reglas a igual tamaño gana el q lo envie antes, pero o, sorpresa!! Tu lo hiciste en linux y tu enter era 1 byte, yo lo hice en wind y mi enter ocupaba 2 bytes.....en resumen, tu codigo sin enter son 99 bytes, y el mio sin enter 98........quien debería ganar????
Sinceramente, en mi opinion lo del include se resolvió mal.....habria que haberlo hecho sin ese include......si es un include "obligatorio" que todos vamos a tener que mas da ponerlo???? Obviamente quisieron "premiar" a los usuarios de linux a la vez que a los usuarios de windows que se buscasen la manera de arreglar ese problema xDD
P.D: Juank te felicito por tu cambio, has conseguido un codigo bastante reducido ;) yo no consigo bajar de 150.....creo q cambiare de sistema >_< :P gracias claro que no le pude ganar a Cronodragon :(
^_^ Último día...
Más de uno debe haberse dejado las uñas rascando bytes :P
Ahora empezarán a mordérselas esperando el resultado :D
Wenas.
La verdad que fue/es un concurso interesante.......y no creo q termine hoy, solo cambiará de etapa.......mañana ya se podrán empezar a colgrar codigos por aqui y por alla, cada uno veremos las sutilezas de los demas........los grandes se veran elogiados y los peqeños aprenderemos un poco (ole) (ole) ;)
Na, no he enviado el codigo, no creo necesario el enviarlo, me salieron 148/149 al final, muy lejos de los 126/127/129 de cronodragon y el otro (me disculpe pero no me acuerdo el nombre (nooo) )
Solo espero que se sigan haciendo concursos de este tipo, me he dibertido muchisimo B)
para mi esta claro que el ganador es cronodragón :lol: (ole)
¿Tú crees? :P
(ses) Una semana para conocer el ganador...
pero ya sabemos que fue cronodragon, asi que cual es el afan?
para mi eso es evidente.
¿Crees que nadiie ha bajado de esos 129?
Pudo equivocarse ... O tal vez un caballero misterioso aparece con 96 bytes de codigo ...
:ph34r: :ph34r: yo tengo 1/8byte :ph34r: :ph34r:
A mi tambien me ha sorprendido lo de 1 semana. Vamos, que tampoco es tan difícil, se coge el fichero más pequeño y se comprueba que cumple con todas las especificaciones...
Yo tampoco lo veo tan complicado... en fin. gdl... te voy a ganaaaaaaar ò.ó
ya dijeron que no cuentan los espacios ni nada eso, ni los enter... cronodragon sin quitar espacios, tabuldores, o ENTER tenia 129 y quitandolos le quedo en 125. ademas Cronodragon es muy experimentado y aunque existe la posbilidad de que lo haya hecho mal lo cierto es que esta posibilidad es tremendamente baja, o al menos eso creo yo. más informacion de cronodragon en : foro TeleportmediaPor otro lado una semana pareceria mucho... pero recuerden que deben compilar y probar todos los programas y las pruebas son desgastantes y una vez probados completamente se entrarian a revisar solo los que cumplieron en todos los casos: revisar ANSI C, contar carateres .. eso quita tiemp mas cuando no podemos disponer de que el admin no haga nada mas en todo el dia porque seguramente que si tiene mucho que hacer fuera del trabajo en el foro y la revista.
Te confundes, cuenta todo. Lo único que dijeron es que contarían los saltos de línea igual para todos.
Además de retorcer la sintaxis de C, el eliminar espacios, tabuladores y demás es una parte fundamental de este concurso y deben contar los que haya. Esto cronodragon lo sabía. Si envió el código con espacios extra es un fallo suyo.
Por cierto, ¿por qué esa fijación en que ganará él cuando algunos ya han dicho que tienen menos? ^_^
lo que pasa es que cronodragon uso el devc++ y por eso le quedaba en 129 pero normalmente seria solo 125 eso entendi yo.
Por otro lado cronodragon es un amigo mio pues nos conocemos en el foro de teleportmedia y de solocodigo ya hace unos años...
la verdad para mi que el va a ganar, y ya que no fui yo pues que bueno que sea un amigo y que sepa tanto.
Cita de: "JuanK"lo que pasa es que cronodragon uso el devc++ y por eso le quedaba en 129 pero normalmente seria solo 125 eso entendi yo. ¿De dónde saca el Dev-C++ esos 4 bytes de diferencia?, porque la mayoría tenemos solo un salto de línea: el obligatorio del include.
Vamos, ¡empezar a postear códigos! XD, qué mas dá, la suerte está echada, podemos ir comentando lo que habeis enviado mientras se deciden
un saludo
Código enviado por de JuanK (version con espacios, enter etc.)
#include<stdio.h> i,j,N;main() { for(scanf("%1d",&N);j=N&N>2&++i<=N;puts("")) for(;j<=N;) printf("%-4d",1+(i+j*2-2)%N+N*(((N-3)/2+i+j++)%N)); }
Este es el mio.. los dejo me voy a reunion de trabajo y esta para laaaaaaaaaaaaaaaaargo hablamos luego.
Argh... mira que no caer en el "%1d" (nooo)... lo hubiera dejado en 121 bytes.
Aquí está el mío (125 bytes):
#include<stdio.h> N, i; main() { for( scanf ("%d", &N ); N>2&N<10&N&i<N*N; printf( ++i%N ? "%-3d" : "%d\n", (i*2-i/N)%N*N+(N/2+i-i/N)%N+1 ) ); }
Mmmm.... Creo que ninguno de esos códigos funciona ¿no? El de JuanK se traga un 71 y pone el cuadrado de dimensión 7 (el "%1d" del scanf() te está traicionando) y el de sés no suma bien las diagonales (creo que le falta un +1 al lado del N/2). Pondré el mío para que también le saquéis pegas. Esta no es la versión del concurso (la del concurso tiene un "int " más (nooo) ) y ésta tiene retornos de línea, etc. #include<stdio.h> i,n; main() { for(scanf("%d",&n); 680>>n&i<n*n; ++i) printf("\n%-3d"+!!(i%n),(i+i/n+158)%n*n+(i+i+i/n+1)%n+1); } Por cierto, sés, ¡hemos llegado a la misma expresión! (Creo que es la mínima) Usé el siguiente programa para buscar esa mínima expresión (alguno tenía curiosidad por ahí). Está hecho para VC++7 modo consola. Ya expliqué que no es lo mismo que tenga un número de operadores mínimos a un tamaño mínimo en caracteres en otro post, así que no puedo asegurar que sea la mínima, mínima. Ojo que tarda un ratillo en ejecutarse (obtiene 16 expresiones válidas). Edit: Son 122 caracteres sin contar el retorno de carro ¿no?
#include<stdio.h> i,n;main(){for(scanf ("%d", &n );n>2&n<10&n&i<n*n;printf(++i%n?"%-3d":"%d\n", (n^(i+n*7+n)%n+i)%n));} Estos son 120 bytes.
Peacho codigos... (ole) me dijeron que habian tortas... pero tantas ? jejejejejeje... :lol:
Se dan de plazo una semana, pq el que lo lleva a parte de ser el "encargado" de mediar en el MQO, tiene otros marranes mas chungos en donde curra, además me ha dicho que quiere mirar con "lupa" el posible ganador.
Suerte !!!!!!!!!!!!
Pogacha, las reglas decían claramente "conteniendo los números naturales desde 1 a N * N".
MA]Mestre, quizá publicando los códigos y abriendo una "fase de alegatos" se simplifique la cosa. ¿no?
Es una buena idea, se lo comentare a ver que opinan...
Cita de: "gdl"Mmmm....
Creo que ninguno de esos códigos funciona ¿no?
El de JuanK se traga un 71 y pone el cuadrado de dimensión 7 (el "%1d" del scanf() te está traicionando)
y el de sés no suma bien las diagonales (creo que le falta un +1 al lado del N/2).
Pondré el mío para que también le saquéis pegas. Esta no es la versión del concurso (la del concurso tiene un "int " más (nooo) ) y ésta tiene retornos de línea, etc.
#include<stdio.h> i,n; main() { for(scanf("%d",&n); 680>>n&i<n*n; ++i) printf("\n%-3d"+!!(i%n),(i+i/n+158)%n*n+(i+i+i/n+1)%n+1); }
Por cierto, sés, ¡hemos llegado a la misma expresión! (Creo que es la mínima)
Usé el siguiente programa para buscar esa mínima expresión (alguno tenía curiosidad por ahí). Está hecho para VC++7 modo consola. Ya expliqué que no es lo mismo que tenga un número de operadores mínimos a un tamaño mínimo en caracteres en otro post, así que no puedo asegurar que sea la mínima, mínima.
Ojo que tarda un ratillo en ejecutarse (obtiene 16 expresiones válidas).
Edit: Son 122 caracteres sin contar el retorno de carro ¿no? gdl, el tuyo se revienta con cualquiera que comience por 7 y sea diferente de 7 no respeta lo de los tres espacios cualquier numero teminado en 99 tambien lo revienta creo que a este paso ninguno va a ganar. que gane el que tenga menos errores (ole) el de ses ... bueno no sirve.
¿Alguien puede decirme dónde falla el mío? Yo lo compilo con MingW (mingw32-gcc -ansi cuadrado.c -o cuadrado.exe) y funciona perfectamente.
Como podreis observar las matematicas no son lo mio XD. Tuve que hacer dos fors porque no supe "sacar" la matriz (aunque no la veais calculo como si estuviera).
#include <stdio.h> main(){int _,x,i,j=0,B;scanf("%d",&_);if(_>2&_<=9&&_%2){B=_*_;while(++j<=B){for(x=_/2,i=1;x!=j-1;x=i++%_?(x-x%_+B-_)%B+(x%_+1)%_:(x+_)%B);printf(j%_?"%3d":"%3d\n",i);}}}
No es exactamente el que envie pero es casi el mismo.
Ofrezco un premio al que averigue que significa x=i++%_?(x-x%_+B-_)%B+(x%_+1)%_:(x+_)%B ya ni me acuerdo :P
Cita de: "JuanK" gdl, el tuyo se revienta con cualquiera que comience por 7 y sea diferente de 7 cualquier numero teminado en 99 tambien lo revienta
Eso es porque has compilado en arquitectura i386 ¿verdad? ;) Prueba en otra arquitectura o con un mejor compilador. Cita de: "JuanK" no respeta lo de los tres espacios
Creo recordar que se especificó una separación del tipo NxxNNxNxx De hecho, sés y Pogacha también usaron el %-3d...
Cita de: "sés"¿Alguien puede decirme dónde falla el mío? Yo lo compilo con MingW (mingw32-gcc -ansi cuadrado.c -o cuadrado.exe) y funciona perfectamente. Supongo que es un fallo del copy&paste pero a la segunda linia les falta el int delante.
Eso solo da un warning y está permitido :P
Cita de: "gdl"Cita de: "JuanK" gdl, el tuyo se revienta con cualquiera que comience por 7 y sea diferente de 7 cualquier numero teminado en 99 tambien lo revienta
Eso es porque has compilado en arquitectura i386 ¿verdad? ;) Prueba en otra arquitectura o con un mejor compilador. Yo he compilado con MingW y no pasa lo del 7X, peri si que se vuelve loco si le meto un 99. Lo de los espacios está bien, justo como dice en las reglas.
Creo que envié otro que ocupaba mas, pero bueno
#include<stdio.h> j,d,o,e[9][9]; main(i) { scanf("%d",&d); for(i=d/2-1,j=d-2;d&1*d>2&9/d&o<d*d;e[++i%d][++j%d]?--i,j-=2:i,e[i%d][j%d]=++o); for(;o--;printf(o%d?"%-3d":"%-3d\n",e[o%d][o/d])); }
Hay va mi codigo(128bytes contando un 0xA)... #include<stdio.h> s,j;main(d){for(scanf("%d",&d);~6&d-3?0:j<d*d;printf("\n%-3d"+(j++%d>0),(s-j%d+d/2)%d*d+s%d+1))s=j%d*2-j/d+d;}
Por cierto, es interesante ver de donde vienen estas formulas: http://mathforum.org/te/exchange/hosted/su...are.OddbyC.htmlCreo que deberia haberme puesto a calcular las formulas a mano según la idea del link anterior, simplemente es una rotacion de 45º!!! <_< Bueno, que el ganador sea quien sea lo disfrute (ole) Un saludo a todos,
Juas no se yo de donde habeis sacado esas expresiones, pero la verdad felicidades a todos xDD
La verdad que habeis ido quitando bytes por todos lados, hasta declarando una variable en el main O_O
Mi codigo no es tan reducido, al final me quede un poco por debajo de los 150 bytes (cosa que al principio me parecio imposible llegar xDD
#include <stdio.h> i,t,N; main(){ scanf("%i",&N); if(N%2&&N>2&&N<10) for(;t<N*N;){i=t/N+1+t%N*2;t%N?0:puts("");printf("%-3d",1+i%N+(N/2+i-t++%N)%N*N);} }
Despues de ver vuestros codigos y sin reducciones matematicas, podría quitarme unos 10 bytes faciles, pero weno.....
gracias a todos y felicidades al ganador xDD
Cita de: "sés"Cita de: "gdl"Cita de: "JuanK" gdl, el tuyo se revienta con cualquiera que comience por 7 y sea diferente de 7 cualquier numero teminado en 99 tambien lo revienta
Eso es porque has compilado en arquitectura i386 ¿verdad? ;) Prueba en otra arquitectura o con un mejor compilador. Yo he compilado con MingW y no pasa lo del 7X, peri si que se vuelve loco si le meto un 99. Lo de los espacios está bien, justo como dice en las reglas. Si sigues usando la arquitectura i386, seguirá fallando. Por otra parte, es verdad, sés, que tu código funciona. El problema era el ++i dentro de un argumento a la llamada a printf(). El orden de la evaluación de los parámetros varía entre compiladores (el estándar asume esto). :) Por cierto, supongo que no se tendrán en cuenta las limitaciones de las arquitecturas porque en i386 todos los que usen int van a descubrir que su código falla cuando se introduce el número 4294967299. :blink:
Como nadie demostro darse cuenta, replico "lo mio era un cazabobos" :P y nadie leyó realmente el codigo
i,n;main(){for(scanf ("%d", &n );n>2&n<10&n&in*7+n)%n+i)%n));}
Me parecen muy interesantes los codigos finales ... muy trabajados todos, mis felicitaciones a todos, muchas ideas que no se me hubiesen ocurrido.
Ups, estaba seguro que Nostromo había hecho algo similar a mí. Bueno, este es mi código de 126 caracteres incluyendo un cambio de línea de 1 caracter:
#include <stdio.h> main(){char n[99];FILE*f;scanf("%s",&n);if(f=fopen(n,"r")){while(!feof(f)){fgets(n,99,f);printf("%s",n);}}}
Nadie se dió cuenta de que las condiciones del concurso no dicen nada acerca de que no se puedan usar archivos adicionales al .c, y tampoco dicen nada sobre que el programa tenga que desarrollar matemáticamente el cuadrado, simplemente dice que lo muestre en pantalla. :) Así que junto a ese código van 4 archivitos llamados "3", "5", "7" y "9" que tienen el cuadrado pre-diseñado y listo para se lanzado a la consola. Espero que hayan valido esos exámenes en la universidad donde los profesores se pasaban de listos y ponían trampas en los encabezados de los problemas, por lo que te forzaban a leer con cuidado... y sino, fue divertido hacer esa solución válida. Que gane el mejor! :D
iNCREIBLE!!!
AJJAJAJAJAJAJA
Y para mi que si cumple con lo pedido, pues en ningun lado dice lo contrario. (asco) me siento muy torpe (genial)
Y pensar que hubiese podido quedar aun más pequeño con algo asi como esto::
#include <stdio.h> n[99];main(){FILE*f;f=fopen(n,"r");for(scanf("%s",&n);f&!feof(f),fgets(n,99,f);printf("%s",n));}
(twist) (grrr)
114 caracteres
Por poder aun se puede menos xDD
#include <stdio.h> n[9];main()for(scanf("%s",&n),FILE*f=fopen(n,"r");f&!feof(f);fgets(n,9,f),printf("%s",n));
Son 6 bytes menos xDD
EDITADO: Juank lo tuyo no rula, haces fopen antes de leer el numero xDD (y el for tienes mal ajustados los ; y las , pero no interfiere en nº de bytes)
Y pensar que hubiese podido quedar aun más pequeño con algo asi como esto::
bueno como podras entender no lo habia probado pues lo hice de afan en la oficina y sin opcion de hacer pruebas.
Siento decirlo, pero el código de cronodragón tampoco cumple las reglas del concurso. De hecho, esas reglas dicen que Citar• La dimensión del cuadrado mágico será aceptada con la instrucción scanf, acabándose el programa prematuramente, si el valor introducido no es una dimensión permitida. He compilado y probado el programa de cronodragón y, como dimensión del cuadrado, he puesto c:\windows\system.ini Que claramente no es un número impar entre el 3 y el 9. El programa no ha acabado prematuramente, sino que ha impreso una serie de datos por pantalla. Creo que va a quedarse desierto el concurso como sigamos a este paso.... O_O
Cita de: "Cronodragón"Ups, estaba seguro que Nostromo había hecho algo similar a mí. Bueno, este es mi código de 126 caracteres incluyendo un cambio de línea de 1 caracter:
#include <stdio.h> main(){char n[99];FILE*f;scanf("%s",&n);if(f=fopen(n,"r")){while(!feof(f)){fgets(n,99,f);printf("%s",n);}}}
Nadie se dió cuenta de que las condiciones del concurso no dicen nada acerca de que no se puedan usar archivos adicionales al .c, y tampoco dicen nada sobre que el programa tenga que desarrollar matemáticamente el cuadrado, simplemente dice que lo muestre en pantalla. :) Así que junto a ese código van 4 archivitos llamados "3", "5", "7" y "9" que tienen el cuadrado pre-diseñado y listo para se lanzado a la consola. Espero que hayan valido esos exámenes en la universidad donde los profesores se pasaban de listos y ponían trampas en los encabezados de los problemas, por lo que te forzaban a leer con cuidado... y sino, fue divertido hacer esa solución válida. Que gane el mejor! :D La solución de cronodragón es totalmente absurda y evidentemente no será dada por válida. Siguiendo esta lógica, no se porque no se le ocurrió enviar un ejecutable cualquiera que pidiera los datos, resolviera el problema y lo imprimiera y un .c (de ¿50 Kb?) que simplemente ejecutara el anterior programa.
Bueno, patagon, no es exactamente lo mismo. El sistema de cronodragón a mi me parece totalmente válido. Muchas veces cuando programamos nos encontramos con la cuestión de poder sustituir ciertos algoritmos que siempre tendrán las mismas salidas, por tablas de datos, para hacerlo más rápido. Otra cuestión es que no cumpla lo del 3,5,7,9. De todas formas por lo que veo no es el más corto.
un saludo
PD: leyendome de nuevo las bases no dice nada de que el programa deba calcular matemáticamente, solo dice que debe mostrar.
La idea de Cronodragón es muy válida en la programación real: el precálculo. Sin embargo, en este caso tiene los defectillos que comenté antes.
Cita de: "nostromo" #include<stdio.h> s,j;main(d){for(scanf("%d",&d);~6&d-3?0:j<d*d;printf("\n%-3d"+(j++%d>0),(s-j%d+d/2)%d*d+s%d+1))s=j%d*2-j/d+d;}
Me acabo de dar cuenta que he metido dos j%d redundantes dentro de la expresion.... deberian ser solo j y hubiera tenido 123 caracteres!!!! (nooo)
Además, nostromo, sobraba el +d en la asignación de la s ya que si hubieras quitado el j%d nunca saldría negativo:
#include<stdio.h> s,j;main(d){for(scanf("%d",&d);~6&d-3?0:j<d*d;printf("\n%-3d"+(j++%d>0),(s-j+d/2)%d*d+s%d+1))s=j*2-j/d;}
Por cierto, me ha gustado mucho la forma que tienes de ver si los valores son correctos.
creo que es muy vada la solucion, con excepcion de que ha cometido bugs, = que todos los demas.
Cita de: "Cronodragón"Ups, estaba seguro que Nostromo había hecho algo similar a mí. Bueno, este es mi código de 126 caracteres incluyendo un cambio de línea de 1 caracter:
#include <stdio.h> main(){char n[99];FILE*f;scanf("%s",&n);if(f=fopen(n,"r")){while(!feof(f)){fgets(n,99,f);printf("%s",n);}}}
Nadie se dió cuenta de que las condiciones del concurso no dicen nada acerca de que no se puedan usar archivos adicionales al .c, y tampoco dicen nada sobre que el programa tenga que desarrollar matemáticamente el cuadrado, simplemente dice que lo muestre en pantalla. :) Así que junto a ese código van 4 archivitos llamados "3", "5", "7" y "9" que tienen el cuadrado pre-diseñado y listo para se lanzado a la consola. Espero que hayan valido esos exámenes en la universidad donde los profesores se pasaban de listos y ponían trampas en los encabezados de los problemas, por lo que te forzaban a leer con cuidado... y sino, fue divertido hacer esa solución válida. Que gane el mejor! :D No se si lo estais poniendo en tono de risa y yo no lo pillo. Pero desde luego estas soluciones con archivos adicionales no deben valer, esta claro. Sino no se porque directamente no se mando: #include"b.h" main(){c();} con su correspondiente b.h con el codigo del cuadrado magico en una funcion c(){...} 29 bytes !!!
Por cierto, enhorabuena me han gustado mucho vuestras soluciones!
PD: yo me he quedado en 141 Bytes
¡Claro manko! Ahora comprendo aquél de los 22 bytes....
Cita de: "gdl"Además, nostromo, sobraba el +d en la asignación de la s ya que si hubieras quitado el j%d nunca saldría negativo:
#include<stdio.h> s,j;main(d){for(scanf("%d",&d);~6&d-3?0:j<d*d;printf("\n%-3d"+(j++%d>0),(s-j+d/2)%d*d+s%d+1))s=j*2-j/d;}
Por cierto, me ha gustado mucho la forma que tienes de ver si los valores son correctos. Sip, una cosa lleva a la otra. Y el caso es que la misma expresión la escribi de varias formas , creo me obsesione tanto con darle vueltas a la expresion que al final se me olvido lo que me acabas de decir; y lo tenia apuntado en alguno de los 10 folios de apuntes que tire a la basura nada más enviar el codigo. :rolleyes: Eso si, me alegre de enviarlo porque no veas el tiempo que "perdi" con el tema. Al principio tenia i
Cita de: "nostromo"Al principio tenia i Una pena que la instrucción SAR de los Intel no esté preparada para desplazamientos mayores de 32 bits y sólo tome los últimos 5 bits del segundo operando. Por esta razón mi código falla en los PCs cuando se pone el 99 (=32*3 + 3). (asco)
Mi codigo de 142 caracteres incluyendo 1 caracter de salto de linea: #include<stdio.h> n,x,c;main(){for(scanf("%d",&n);x<99&!(n-3&~6);)c==(n-1+x-x/n*2)%n*n+(n/2+x-x++/n)%n?printf("%-3d%c",x,(++c%n)?0:10),x=0:0;}
Con saltos de linea: #include<stdio.h> n,x,c; main() { for(scanf("%d",&n);x<99&!(n-3&~6);) c==(n-1+x-x/n*2)%n*n+(n/2+x-x++/n)%n?printf("%-3d%c",x,(++c%n)?0:10),x=0:0; }
Citar GDL: Por cierto, supongo que no se tendrán en cuenta las limitaciones de las arquitecturas porque en i386 todos los que usen int van a descubrir que su código falla cuando se introduce el número 4294967299. blink.gif
El mio no fallo. :) Pero parece que perdi de todos modos :( Saludos.
¿Que dicen la reglas hacerca de la la impresion del resultado? Algunos codigo dan como resultado algo como:
4 9 2 3 5 7 8 1 6 bash-3.00$
Y otros esto:
4 9 2 3 5 7 8 1 6 bash-3.00$
Notese el salto de linea despues del 6.
Creo que Nostromo va ganando ¿cierto? :)
Claro:
Archivo cuadrado.c :
#include"a"
Archivo a :
#include<stdio.h> #include<stdlib.h> #define f (sizeof(int))
int i,j,k,l,m,*t,*u,*v; int r(x)int x;{return (rand()/256)%x;} void p(x,y)int *x,y;{for(i=y;--i;k=x[i],x[i]=x[j],x[j]=k)j=r(i+1);}
void o(n,a,q,d)int n,d,*a,*q; { for(m=r(2)?n:1,t=q,l=n/2,i=n; i--&&(i!=l||i--); *(t++)=i); for(p(q,n-1),q[n-1]=l,u=a,i=j=0; i<n*n; u[i] =q[j]*m,j++,++i%n||(++j,u+=d),j>=n&&(j-=n)); for(p(q,n-1),u=a,m=n+1-m,i=0,j=n-1; i<n*n; u[i]+=q[j]*m,j++,++i%n||(--j,u+=d),j>=n&&(j-=n)); }
void s(n,a,q,d)int n,d,*a,*q; { for(q[1]=3-(*q=r(n)),q[3]=3-(q[2]=1^q[r(2)]),t=a,i=n,m=3*r(2); i--; t+=d) for(j=n; j--; t++[0]=q[j^(i&m)^(i/2)]); for(q[1]=3-(*q=r(n)),q[3]=3-(q[2]=1^q[r(2)]),t=a,i=n,m=3-m; i--; t+=d) for(j=n; j--; t++[0]+=q[j^(i&m)^(i/2)]*4); }
void e(n,a,q,d)int n,d,*a,*q; { int h,i,k,l,z,g=n/2; void (*m)(); for((m=g!=4?g%2?o:e:s)(g,a,q,g+d),m(g,a+g,q,g+d),l=(n+d)*g,u=a,i=g; i--; u+=d) for(j=n; j--; j<g&&(*u+=g*2*g),l[u]=*u+(j<g?-1:3)*g*g,u++); for(i=g; i--; q[i]=i<g/2); for(h=k=(g+1)/2,v=a; v<a+n; v+=g){ for(u=v,i=g; i--; u+=g+d){ if(p(q,g),q[z=g-i-1]) if(k)k--; else for(j=g;q[--j]||(q[j]=1,q[z]=0);); else if(k>i) for(j=g;!q[--j]||(k--,q[z]=1,q[j]=0);); if(q[i]) if(h)h--; else for(j=g;q[--j]||j==z||(q[j]=1,q[i]=0);); else if(h>i||(g==3&&h&&(k==2||i==z))) for(j=g;!q[--j]||j==z||(h--,i==z&&k--,q[i]=1,q[j]=0);); for(t=q,j=g;j--;u++) if(0[t++])z=*u,*u=u[l],u[l]=z; } for(h=k=g/2-g%2,i=g;i--;q[i]=i<h); } }
int main(c,v) int c; char **v; { int n,*a,*b; srand(getpid()); if(c<2 || sscanf(1[v],"%d",&n)!=1 || n<3) n=5; if(!((a=(int*)malloc(n*n*f))&&(b=(int*)malloc(n*f)))) return perror("malloc"),1; (n!=4?n%2?o:e:s)(n,a,b,0); for(i=0;i<n*n;i++) printf("%4d%c",a[i]+1,(i+1)%n?' ':'\n'); return 0; }
11 bytes
Bueno menos mal que la gente opina, yo estaba flipando con la solución de cronodragon y que nadie dijera nada :blink:
Cita de: "ZeruGiran"Creo que Nostromo va ganando ¿cierto? :) Ojala!!! :D Pero me temo que no, ses y gdl tienen menos caracteres que yo e imagino que hay gente por ahi de la que todabia no sabemos nada. O_O
NOSTROMO:
Por lo que lei:
ses: no cumple la regla de las diagonales. gdl: tiene problemas con el 99 y 7x JuanK: tiene problemas con 7x Cronodragron: suponiendo que sea valido usar archivos externos, aun asi ya se aclaro que puedes meterle como parametro C:/autoexec.bat y saca basura (aunque estoy seguro que lo descalificaran).
Me parece que si vaz ganado, tu code quedo genial :)
borra.me
Cita de: "ZeruGiran"ses: no cumple la regla de las diagonales. ¿Por qué no la cumplo? He probado mi código con MingW y funciona perfectamente. Ahora lo he probado también con Borland y también funciona. Con Visual C parece que falla (pero no solo las diagonales) y, a mi entender, es por un fallo del compilador. Me explico: Los parámetros en las llamadas a funciones se meten en la pila de derecha a izq. La llamada: f( 1, 2 ); Debería ser algo como: push 2 push 1 call f Dicho de otra forma:2 f( expr1, expr2 ) sería: push expr2 push expr1 call f
Visual C está calculando expr1 (en mi caso ++i%N) antes de evaluar la expresión de la derecha. Eso para mí es un fallo del compilador.
De hecho, si en mi código cambias el printf por esto:
printf((i+1)%N?"%-3d":"%d\n",(i*2-i/N)%N*N+(N/2+i-i/N)%N+1),i++ Funciona perfectamente en Visual C
P.D.: ...¿o será que están mal el resto de compiladores? O.O
Ejem... Fallo en Visual CDefinitivamente considero que mi código es correcto por que no tiene nada extraño. Es C normal y corriente, y el que un compilador haga cosas raras no lo hace menos válido. En las reglas tampoco dice que deba funcionar con todos los compiladores. Si uno, como es el caso de Visual C, se hace un lío con una expresión, no es problema del código. Y dado que funciona en más compiladores de los que falla (solo VC)...
Cita de: "sés"Ejem... Fallo en Visual C
Definitivamente considero que mi código es correcto por que no tiene nada extraño. Es C normal y corriente, y el que un compilador haga cosas raras no lo hace menos válido.
En las reglas tampoco dice que deba funcionar con todos los compiladores. Si uno, como es el caso de Visual C, se hace un lío con una expresión, no es problema del código. Y dado que funciona en más compiladores de los que falla (solo VC)... Vamos a ver. Una cosa es que se cumpla la norma ANSI y otra que el código sea portable. La norma ANSI dice en el apartado 6.5.2.2 relativo a las llamadas a funciones, en su párrafo décimo que Citar10 The order of evaluation of the function designator, the actual arguments, and subexpressions within the actual arguments is unspecified, but there is a sequence point before the actual call. Es decir, que cada compilador puede hacer lo que le de la gana y sigue cumpliendo la norma. ¡Incluso el comportamiento tan extraño del VC! Ya que el párrafo habla no sólo de expresiones sino también de subexpresiones. Creo que para aclarar las cosas respecto a los fallos, hemos de hacer una clasificación de los mismos. Propongo la siguiente - Fallos sintácticos: no compila según la norma ANSI. - Fallos semánticos: existe un fallo en el programa que se puede detectar sin ejecutarlo y basándose en la semántica que da la norma ANSI (tomando un caso favorable si se especifica comportamiento indeterminado). - Fallos de portabilidad: aparecen cuando se usan características que la norma ANSI deja indefinidas o deliberadamente abiertas. El caso de sés entra dentro de un fallo de portabilidad ¡¡pero todos los programas tienen fallos de portabilidad!! ¡¡La norma deja indefinido el tamaño de los tipos básicos!! Bastará compilar cualquier solución del concurso para (por decir algo) un PIC16F876 que es un micro de 8 bits e introducir como dimension 259 = 256 + 3. Como es de 8 bits, no puede guardar el 259 y se queda con el 3... que cuela como válido. El programa habría aceptado un 259 y no ha acabado prematuramente. (Y si con 8 bits funcionase... buscamos micros de 4 bits que también los hay :P ) Es más, las reglas dicen que el programa siga la norma ANSI, no que sea portable. No se han dado casos de fallos sintácticos, pero sí de fallos semánticos. Por ejemplo, el caso de Cronodragón. Es un programa que vuelca por pantalla el fichero que se le introduzca. Sin ejecutar el programa se puede decir que no se está haciendo la comprobación de que se haya introducido un número impar entre 3 y 9. Creo que esta forma de juzgar los programas sin compilarlos ni ejecutarlos en una plataforma específica debe ser la que se use. A partir de ahora no valdrá decir "el programa falla porque lo compilé con un GENC en un Spectrum 16K y no va". Habrá que decir "el programa falla porque la guarda del bucle es falsa cuando la variable a es 13".
Bueno, a eso es justo a lo que voy. Yo considero mi programa válido porque en ningún momento se especifica que deba funcionar en tal o cual compilador.
Otra razón por la que lo considero válido es porque solo ha fallado en un compilador. Que mucha gente lo utilice no significa nada. También mucha gente usa GCC o MingW y en ese sí funciona.
Probado también con Digital Mars C/C++ Compiler Version 8.42. Parece que solo va a fallar con Visual C :P
-= EDIT =- También funciona con Open Watcom 1.3
Pogacha, te falta el include obligatorio ;)
En realidad no participé y no se las reglas finales, algunos retoques y es la solucion optima.- Saludos
Bueno el hecho de que sea aequitectura I386, no tiene nada que ver todo es cuestion del compilador que es qel que a la final estructura el codigo de mauina como mejor le convenga.
Para proximos concursos creo que seria necesario imporner el uso de un compilador determinado para evitar estos incovenientes.
el io lo probe en gcc para MINIX y funciona y no se revienta pro nada del mundo!! (genial)
jejejeje es broma , pero podria pasar
LOL
Felicidades :D
la verdad es que es la cosa mas ilegible que he visto, pero ole tus webs por ganar y tener un hijo asi, felicidades (ole)
Enhorabuena (ole)
Brillante ses (ole)
Recien entiendo lo corto de tu solucion, te felicito!!! (ole)
me has enseñado mucho con eso que hiciste en el printf, la verdad no se me haia ocurrido :)
Y como hallaste ese algoritmo tan corto para la solucion? (uoh) (genial)
MIERDA! ! ! !
digo..... felicidades.
joer, y con solo 2 variables......
Felicidades tio! (ole)
Asias. Cita de: "JuanK"Y como hallaste ese algoritmo tan corto para la solucion? Cuando llegue a casa (sigo en el curro) lo cuento para el que tenga curiosidad. La verdad es que es muy simple :rolleyes:
Que maquina :)
Congratulations! :)
(ole) Felicitaciones (ole) Para descargar su ira, incito al resto de los participantes a picar los ojos de sés o al menos de su avatar Saludos y felicitaciones nuevamente.
Cita de: "Pogacha"Para descargar su ira, incito al resto de los participantes a picar los ojos de sés o al menos de su avatar (ses) crueles...
:blink: Maldito Sés :angry:
Falicidades :D (ole)
Coño sés! ¿Tu avatar siempre a sido un swf? emm, no me preguntes como lo acabo de averiguar....
un saludo
jejejej, ses, eres un crack :-D , enhorabuena machote xD
Cita de: "fiero"Coño sés! ¿Tu avatar siempre a sido un swf? emm, no me preguntes como lo acabo de averiguar.... Ya... no me lo digas... o.+
Machote, machote ;)
Felicidades B)
Felicidades ses (ole)
Cita de: "fiero"Coño sés! ¿Tu avatar siempre a sido un swf? emm, no me preguntes como lo acabo de averiguar....
un saludo Y si me enojo con algun reply lo pongo en baja calidad!!!
Yo le agrando el ojo y luego lo pincho :D
¡Enhorabuena, maestro! (ole) (ole) (ole)
No suelo postear mucho, y menos en offtopic, pero ... Hoy me han tocado mucho la moral. Sacado del foro del concurso: Citar
(quote="Admin")Hola mel,
Comprendo tus comentarios, te he explicado de forma privada, el pq de que no ganarás el consurso, ha sido una lástima, la verda :cry:
Un saludo.(/quote)
Resumiendo: no gano porque he utilizado una cuenta de Hotmail para enviar el programa.
!-F-A-B-U-L-O-S-O-!
Pues nada, tomaremos nota para la próxima.
Enhorabuena al ganador, y a MQO por organizar el concurso.
Saludos
(ses) Mi no entender nada.
Cita de: "Juan Mellado"No suelo postear mucho, y menos en offtopic, pero ...
Hoy me han tocado mucho la moral.
Sacado del foro del concurso:
Citar
(quote="Admin")Hola mel,
Comprendo tus comentarios, te he explicado de forma privada, el pq de que no ganarás el consurso, ha sido una lástima, la verda :cry:
Un saludo.(/quote)
Resumiendo: no gano porque he utilizado una cuenta de Hotmail para enviar el programa.
!-F-A-B-U-L-O-S-O-!
Pues nada, tomaremos nota para la próxima.
Enhorabuena al ganador, y a MQO por organizar el concurso.
Saludos
postea tu programa y asi pones una prueba firme ya que un simple texto no corrabora los hechos que te han pasado saludos y espero que se solucione el tema
Pues, si, que aclaren esa curiosidad....
Felicidades ses :P
Pasando la N a main y con la otra validacion que usaron aun se le quitan 2 caracteres mas :lol:
como llegaron a esto ¿? ~6&N-3 y yo que pensaba que hacer karnaugh no valdria para nada, habra que ver los apuntes que ha hecho la gente jejejeje
i;main(N){for(scanf("%d",&N);!(~6&N-3)&i<N*N;printf(++i%N?"%-3d":"%d\n",(i*2-i/N)%N*N+(N/2+i-i/N)%N+1));}
Cita de: "igon"como llegaron a esto ¿? ~6&N-3 y yo que pensaba que hacer karnaugh no valdria para nada, habra que ver los apuntes que ha hecho la gente jejejeje
llegue a eso por "casualidad" probando cosas en papel... resulta que tenemos que aceptar solo 3 5 7 y 9 .... bien, la "casualidad" es que si restamos 3 a N (es decir N-3) tenemos que los 4 numeros anteriores en binario serian: 00000 (3-3) 00010 (5-3) 00100 (7-3) 00110 (9-3) 43210 <- posicion con lo que puedes ver que los 4 numeros que buscamos estan codificados en 2 bits (en la posicion 1 y 2), y con esto sabemos que si se encuentra un 1 en una posicion distinta de la 1 o la 2 el numero(dimension) sera incorrecto. Con todo esto el ~6 ( NOT 000110 ) es igual a ...1111001 y haciendo AND con el N-3 sabemos si el numero es falso....
Yo lo siento ses, pero el admin se contradice. He querido postear en ls foros del concurso pero no me envia el correo de la clave >_< asi q respondo aqui: Cita de: ""Admin en Sab Abr 09" Bueno, llegados a este punto, nos vemos obligados a dar las explicaciones pertinentes...
Primero: Las bases del concurso especifican claramente que el ganador es quien entrega el fiechero *.c con menos bytes.
Segundo: Las entregas han sido recogidas todas con ms outlook por envio directo vuestro.
Tercero: Después de recoger todos los archivos llegados, se han ordenado por tamaño. De esto se obtiene.
sés 125bytes gdl 127bytes mel 127bytes
Sopresa nuestra cuando mel, teniendo un código de 123c, su fichero ocupa 127bytes.
Después de examinarlo, encontramos un "Enter" al final del código, y que el "Enter" entre el "include" y la "main", esta formado por chr(13)+chr(10).
Conclusiones: Ciñendonos a las reglas, sés es el ganador.
Nota personal: Desconozco como funcionan las cuentas de hotmail, nuestra resposibilidad empieza en cuanto recibimos los códigos y aquí todos han recibido el mismo trato. Cita de: ""Admin en Mie Mar 30" Si, tranqulo, se valora el programador mas 'minimalista', pues es el espiritu del concurso Olvidaros de temas de saltos de linea finales de fichero etc...
Pos menos mal q tenian el programa preparado e iva a mirar con lupa todos los posibles ganadores.... Yo no digo que no le haya metido tiempo, pero creo q es de sabios rectificar.....bajo los datos que dio ni la linea final y su enter solo cuenta 1, por lo q serian 124 bytes.........en el caso de gdl no se como quedaria, en tu caso ses creo q te lei que habias corregido lo del enter, asi q no se que decir........
Ya que pones el mensaje del Admin, pon el mensaje al que responde: CitarSupongo que ese programa contará 1byte/salto de línea, ¿no? Por que eso si que debe contar. No es lo mismo el que necesite 3 saltos de línea que el que solo necesite uno. 127 bytes, incluyendo 2 saltos de línea de 2 bytes. Si se cuenta cada salto de línea como 1 byte, eso serían 125 bytes. O sea, lo mismo que el mío.
Dejadlo ya chicos.
Yo lo único que quería saber era qué había pasado con mi programa.
Mi fichero .c ocupa 124 bytes (= 123c + 1 LF). El problema está en que ellos han recibido un fichero de 127 bytes. Los 3 bytes "extra" los ha metido Hotmail al enviar el fichero. ¡Ha añadido los retornos de carro y saltos de línea que yo quité!
Ya lo dije en mi primer post del foro del concurso, y lo repito ahora: "No quiero polémicas, sólo averiguar que ha pasado con mi programa".
Ya lo he averiguado.
Saludos
pero enviaste un archivo adjunto o lo enviste directamente por correo?
Fichero adjunto, como Dios manda.
Ses, puse ese quote pq especificaba liinea de fin de fichero. Si por medio se tiene mas de un enter, pues 1 byte cada uno, pero el de final de fichero ya dejo claro como se ve en el quote que no se contaría.
De todos modos esto me va a enseñar una cosa. Si quiero enviar cosas por correo mejor meterlas en un zip/rar xDD
Cita de: "Juan Mellado"Fichero adjunto, como Dios manda. no es por crear polemica ni nada, pero no creo posible que hotmail agregue un retorno de carro a un archivo adjunto, si fuera al mensaje en si pues me lo creeria, pero a un archivo adjunto ... no se lo mejor es que pongas tu programa y asi lo dejas claro de una vez que el motivo fue el envio de hotmail, por que yo lo veo claro del todo saludos pd: ¿eran numeros entre 3 al 9 o los impares entre 3 al 9?
Cita de: "nostromo"Cita de: "igon"como llegaron a esto ¿? ~6&N-3 y yo que pensaba que hacer karnaugh no valdria para nada, habra que ver los apuntes que ha hecho la gente jejejeje
llegue a eso por "casualidad" probando cosas en papel...
resulta que tenemos que aceptar solo 3 5 7 y 9 .... bien, la "casualidad" es que si restamos 3 a N (es decir N-3) tenemos que los 4 numeros anteriores en binario serian: 00000 (3-3) 00010 (5-3) 00100 (7-3) 00110 (9-3) 43210 <- posicion
con lo que puedes ver que los 4 numeros que buscamos estan codificados en 2 bits (en la posicion 1 y 2), y con esto sabemos que si se encuentra un 1 en una posicion distinta de la 1 o la 2 el numero(dimension) sera incorrecto.
Con todo esto el ~6 ( NOT 000110 ) es igual a ...1111001 y haciendo AND con el N-3 sabemos si el numero es falso.... Muy buena la explicacion :D tnks Respecto esto de que si retorno de carro o no....en mi opinion es lo de menos, a mi quien gane o deje de ganar me importa poco........ Pero yo opino que un criterio de elegir ganador es ver los codigos uno por uno ( que son bien pequeños ) y eliminar los espacios, retornos y tal........ Si hay que ceñirse al criterio de ordenación de outlook y pasarle un simple bat que compile y pruebe unas cuantas entradas, no entiendo como se necesita 1 semana de seleccion Saludos
La proxima vez no deberian ser tan cabrones y contar solo los caracteres del codigo, para dejarse de la tonteria de los saltos de pagina, y en general concretar mas las reglas. Al final en este tipo de concurso siempre pasan estas cosas, las normas no se preveen (siempre es dificil controlar todo) y alguien sale descontento.
Cosas asi hacen que mucha gente deje de concursar.
En cualquier caso felicidades a los 3, os habeis currado un codigo ilegible, y fantastico :D
No he seguido el hilo, pero si no se trata de un iPod, da igual quien haya ganado :lol: :P
jajajaja Ahora si me les puedo reir en la cara a todos los que me diejeron que estaba peleando por estupideces con eso del retorno de CR y LF... (twist) IDIOTAS.
jajajajajajjaja
que tontos .. lastima lo de la ignorancia en algunos de los participantes pero sobre todo que lastima la ignorancia por parte del administrador que no sabe ni que es lo que promete ni lo que dice. y segun parece ni sabe como funciona un mail server :angry:
Lo peor de todo es que nisiquiera se tomo el trabajo de revisar el solo codigo como lo habia dicho,
No es nada en contra de ses, pues se merece el premio, pero lo cierto es que si las cosas han sido como se han mostrado, entonces se ha cometido una injusticia a la hora de entregar el premio. (asco)
:ph34r:
El concurso se ha hecho con buena fé. Y os puedo asegurar que no hay ningun tipo de intereres en que gane uno o otro. Dicho esto, todos estamos sujeto a criticas, pero algunos comentarios o calificativos pasan de la ralla. Y más con una iniciativa, a mi parecer, bonita como esta.
Sería bueno tb, que cada uno mirara hacia él, y reflexionar si su comportamiento durante y después del concurso fue el más correcto, en el foro de mqo como en paralelos.
Como dice seryu, "es dificil controlarlo todo", y ganara quien ganara, la polémica estaba servida. No entiendo de "mail server", pero "flipo" si en un mensaje de hotmail agrega un enter en los archivos que adjunta. Y "flipo" más, si retoca los enters entre el código. <_< , i más cuando otros concursantes han adjuntado archivo.c desde cuentas hotmail.
Hasta que tarden una semana en anunciar el ganador os parece mal ? si no lo han echo antes no sera pq tienen una pata encima de la otra, la gente no vive del aire. Que problema hay en esperar unos dias a el ganador ? que alguien me lo explique.
A todo esto, el viernes me entregaron las llaves de la ciudad para organizar el siguiente concurso ( y entregar el premio de este ). Quereis hacer algo constructivo ? Pasaros por el foro, registraros y postear sobre como os gustaria que fuera el siguiente concurso. (ole)
Un saludo, en especial a Sés y a Juan Mellado.
Cursiosamente hoy Haddd me ha pasado la actualización de un archivo del motor C# (a pelo, sin comprimirlo) a mi cuenta de hotmail y mirad el resultado (un fragmento):
#region Using directives
using System; using System.Collections; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D;
using Haddd.Physics; using Haddd.Core; using Haddd.Scene; using Haddd.HMath; using Haddd.HMath.Geometry; using Haddd.AI;
#endregion
Como podéis ver, se han añadido 3 caracteres al principio del archivo sin venir a cuento... :D
Saludos.
Por alusiones: Cita de: "MAMestre"]... pero "flipo" si en un mensaje de hotmail agrega un enter en los archivos que adjunta. Y "flipo" más, si retoca los enters entre el código ...
Si no fuera porque tengo claro que no es tu intención, diría que estás dudando de mi palabra. Por favor, mantengámonos dentro del buen clima de entendimiento y camaradería que siempre ha reinado en estos foros. Y otra cosa, en vez de "flipar", podrías tomarte la molestia de probarlo. (Mi configuración: XP SP2, Firefox 1.0.2, Hotmail) Esta es una de las pocas páginas que visito a diario. Y aunque no aporte mucho con mis comentarios, ya que casi nunca posteo, no me gustaría que se crearán tiranteces por mi culpa. ¡Buen rollo, por favor! Y lo repetiré una vez más: No quería generar polémica, sólo averiguar que había pasado con mi código ¡Es que no lo entendía! Y me quedé de piedra cuando me comunicaron que el fichero que habían recibido tenía más bytes de la cuenta. ¿Lo dejamos ya? Saludos a todos
Bueno eso si es cierto que el concurso ha sido hecho de muy buena fe...
asi que pido disculpas por mis palabra anteriores, y mejor invito a todos los participantes y organizadores del concurso a que aprendamos de los errores que hemos cometido en este para cada vez hacer mejores concursos. Estos concursos son una buena iniciativa y lo ideal seria promover como bien se ha dico.. un ambiente de camaraderia.
Cita de: "Juan Mellado"Si no fuera porque tengo claro que no es tu intención, diría que estás dudando de mi palabra. Pues ten clara mi intención, ni yo, ni el admin/s del mqo "nunca ha dudado de tu palabra". Dicho esto, no quita, que "flipe" con el comportamiento del Hotmail. Berserker puso tb una muestra de ello. Un saludo a todos.
Bien, pues lo mejor para la próxima es que se adjunte un MD5 del programa, para que así podáis aseguraros de que lo recibís tal y como os lo envían. Tan fácil como eso. Un saludo :)
Yo también flipo, pero realmente la culpa es de Juan por usar el correo de Hotmail. Aún te pasa poco XD (twist)
Hombre... antes de proponer camaraderia y tal, lo mejor es medir las palabras antes de escribirlas. Lo digo por tí JuanK, que está muy bien pedir disculpas, pero mejor es no tener que pedirlas... (Nunca se me ocurriria escribir la palabra idiotas en un foro, ...ups... la acabo de escribir)
un saludo
podrias tener razon.. pero lo cierto es que aunque dije las cosas con mucha rabia... tenia razon al decirlas... mas rabia aun cuando fui la persona qua mas di pelea por lo de los retornos carro... y me tuve que aguantas varias intervenciones bastante 'cerradas' de algunas personas.. que ya cada cual sabra quien fue.
De todas formas me ratifico con lo de las disculpas y con mis mejores deseos para que todos aprendan de aca y sean mas precisos lo organizadores y mas cuidados los participantes.
yo me he mandado un archivo de texto a mi propio correo y a otro y esta impecable, hotmail no lo ha retocado
saludos
Me parece claro que si el objetivo era reducir el tamaño del archivo, que cada uno se encargue de sus retornos de carro, lo que me parece que faltó, seria una confirmación cuando se recibe, o sea cuando el archivo se recibe te tendrian que responder se ha recibido un archivo de xxx bytes y tal archivo cumple con las normas y compila en ansi C con tal compilador, la evaluación del resultado sera por medio de tal compilador el dia tal ... No creo que esto se halla podido preveer pero bueno, se sabe para la proxima ...
Saludos
|
|
|
|
|