UTNianos

Versión completa: [PEDIDO]Final Algoritmos 13/02/2010
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola, alguno rindio la primer fecha de algoritmos ???, podrian subir el final ??
Muchas gracias !!, saludos !!
idem, alguien lo puede subir plz?
Nos juntamos a estudiar para este sábado? =)
ojala tomen como la del 12/12/09
uyy que hijos de puta!! era medio jodido... digamos, enquilombado, pero creo que acabo de sacarlo.

Empecemos... todo lo relatado, es un chamullo enorme, lo unico que interesa, es que el IDFILEPUB no se repite. (encima en una mandaron fileIdPub... ni escribir saben)

La idea es que a FILESxUSER solo podés entrar por busquedas binarias, lo que te da la pauta de que vas a buscar por su campo ordenado, y su campo ordenado es IDFILEPUB. Entonces vemos que el otro archivo que tiene el idFILEPUB es To_Kill, que es en realidad el que tenemos que imprimir, agregándole el usuario y varias cosas más. Entonces lo que pensé es:

LISTAAUXILIAR: Cargo FILES.DAT leyendo secuencialmente. Guardo IDFILE (1 nodo por idfile, se supone que son siempre distintos de todas manera, asique la cantidad de nodos va a ser igual al filesize) y Posicion a ese registro (servira para imprimir lo que pide). Sumando todo... 12 bytes.

LISTA: Leo TO_Kill, con el IDFILEPUB hago busqueda binaria en el archivo FILEXUSER (ordenado x ese campo). Cuando lo encuentro, CREO NODO con ese usuario y sublista en nil. En la sublista agrego el IDFILE -va a servir para acceder a FILES.DAT- que tiene tambien ese registro, y la posicion al archivo TO_Kill (va a haber que imprimir otras cosas). Por ende.. en la lista: 8+4+4 = 16. Sublista = 4+4+4 = 12 bytes.

Finalmente muestro resultados, ¿Como?

1) Voy a la lista de usuarios, cada nodo es un usuario. Imprimo su nombre.
2) Con el ID_FILE, hago busca nodo en mi lista auxiliar. Cuando lo encuentro, con la POS a files.dat, entro y muestro FILENAME, SIZE, Y FECHA UPLOAD.
3) Ahora utilizo la POS a TO_Kill que tenia guardada, accedo a TO_kill, y muestro FECHA REPORTE (que ya viene ordenada) y motivo.
4) El resto son acumuladores de tamaño e incrementador.

Pense eso, ni idea si esta bien, el busqueda binaria que dice supongo que es plural, onda... lo hago varias veces.
Saludos... voy por mi 3er chance el sabado jajaj

PD: dejo mi resolucion, si le pifie en algo (posiblemente) diganme.
http://www.megaupload.com/?d=UVCMPNL5
lo resolveré mañana y les cuento qué me salió!
rendi ese final xD
les paso las estructuras..


ListaA: [ FileId, PosFIle, Contador ]

ListaB: [Username, Slst ]

Slst: [Idfile, PosTokill ]

Recorren Files y lo ordenan en la listaA
Recorren To_Kill, y van volcando usando busq bin en la ListaB ordenando por USername, y luego en la sublista insertando por ultimo (ya que pide ord por fecha y ya lo tenemos asi)
No se olviden de actualizar el contador en este paso.

Y luego simplemente emiten buscando los datos donde se encuentren..

La verdad era bastante mierda este final (N)
creo que fue dificil porque lo tomaron como 3er fecha de diciembre
Enunciado 1er. llamado a final 13.02.2010, File Hosting (examen
pendiente de dic.2009 3er.llamado).-
huy que sea facil yo me presento el sabado 20!
Locu05 escribió:rendi ese final xD
les paso las estructuras..


ListaA: [ FileId, PosFIle, Contador ]

ListaB: [Username, Slst ]

Slst: [Idfile, PosTokill ]

Recorren Files y lo ordenan en la listaA
Recorren To_Kill, y van volcando usando busq bin en la ListaB ordenando por USername, y luego en la sublista insertando por ultimo (ya que pide ord por fecha y ya lo tenemos asi)
No se olviden de actualizar el contador en este paso.

Y luego simplemente emiten buscando los datos donde se encuentren..

La verdad era bastante mierda este final (N)

Al final me parece que no era así (como decís y como yo puse). Porque tenés que imprimir los que fueron reportados MAS DE UNA VEZ... y estaríamos mostrando TODOS, ahí.
yo hize una funcion que me devuelva la posicion del archivo files si es que fue reportado mas de uan vez (contador > 1), y asi imprimi solo de los que fueron reportados mas de una vez.
Hola, alguno tiene el final que tomaron este sabado 20, yo me presente y me hicieron bosta...., me equivoque en una cosa..., si alguien lo tiene se lo voy agradecer mucho. Saludos.
fraimocho escribió:Hola, alguno tiene el final que tomaron este sabado 20, yo me presente y me hicieron bosta...., me equivoque en una cosa..., si alguien lo tiene se lo voy agradecer mucho. Saludos.

a mi tmb, me parecio ultra jodido... el enunciado es igual que el que esta en este thread, el del 13, nomas la condicion de nodos era 16 bytes * (filesize files + filesize userxfile) y te decia que el listado tenias que imprimir aquellos donde TODOS sus dueños fueron reportados (ni escribir saben, porque no reportan a los tipos, reportan los archivos.... son unos pelotudos).

ese manejo de listas que habia que hacer no lo tomaron nunca en la historia, hdps.
No era tan jodido, a mi me re cagaron, lo hize todo perfecto pero use lista con sublista para que quede mas prolijo y me lo anularon pq me pase de la cantidad de nodos.

Era una lista paralela al archivo files dnd se agrega un contador. ( recorriendo files secuencialmente) (idfile 4b, pos 4b, contador 4b, sgte 4b)=16b
Una lista de (id file 4b, id filepub 8b y sgte 4b)=16b (recorriendo secuencialmente filesxusr) e INCREMENTANDO EL CONTADOR de la lista files ( el contador era de cantidad de usuarios que comparten un archivo).
Por ultimo recorres secuencialmente to_kill, buscas en la segunda lista el idfilepub, cn el id file de ese filepub te vas a la primer lista y DECREMENTAS EL CONTADOR.

Para imprimir te paras en la lista primera y si contador = 0, cn la posicion de ese nodo seekeas en archivo files e imprimis; ademas en ese paso incrementas contadores que imprimis cuando se agota la lista.
No fue imposible...., simplemente habia que leer y entender bien el enunciado., si hay alguien lo tiene, por favor que lo suba, gracias. saludos.
Páginas: 1 2
URLs de referencia