elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con programa en-lenguaje en c o c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa en-lenguaje en c o c++  (Leído 3,180 veces)
Calos

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con programa en-lenguaje en c o c++
« en: 12 Septiembre 2020, 09:55 am »

Tengo que realizar un programa que me diga cuantos animales pasarón por ambos mares el ejercicio es el siguiente:
Descripción
Las lágrimas de Alicia no formaron un mar como todos creían, sino dos, uno por cada ojo. Y por lo tanto, algunos animales descuidados se mojaron varias veces y tuvieron que correr varias carreras para secarse. Cuando Alicia se percató de la situación, decidió contar cuántos animales se mojaron en los dos mares de lágrimas.
Código:
Entrada
Un entero  seguido de  parejas de enteros. Cada pareja de enteros  y  representa a un animal  que se mojó en el mar .
Código:
Salida
Un entero que sea la cantidad de animales que se mojaron en los dos mares.
Código:
Rangos
Puedes suponer que 1<=N<=100000 , que i<=A<=50000  y que 1<=M<=2.
Código:
Entrada                               Salida
5                                        1
3    1
1    2
4    1
1    2
3    2


Mi código es el siguiente:
Código
  1. #include <iostream>
  2. #include <map>
  3.  
  4. int main(int argc, char** argv)
  5. {
  6.    int N=100000, rango=2, AnimalesEnDosMares=0, acumulador=0;
  7.    scanf("%d", &N);
  8.    int matriz[N][rango];
  9.    for(int i=0; i<N; i++)
  10.    {
  11.        scanf("%d", &matriz[i][0]);
  12.        scanf("%d", &matriz[i][1]);
  13.    }
  14.    for(int i=0; i<N; i++)
  15.    {
  16.        for(int k=0; k<N; k++)
  17.        {
  18.            if(matriz[k][0]==matriz[i][0])
  19.            {
  20.                if(matriz[k][1]==1)
  21.                {
  22.                    acumulador++;
  23.                }
  24.                if(matriz[k][1]==2)
  25.                {
  26.                    acumulador++;
  27.                }
  28.            }
  29.        }
  30.  
  31.            if(acumulador==2)
  32.        {
  33.            AnimalesEnDosMares++;
  34.        }
  35.    }
  36.        printf("\n%d", AnimalesEnDosMares);
  37.    return 0;
  38. }


Mi problema es que el ultimo acumulador siempre me da 1, aunque mete que dos animales pasaron por ambos mares.


MOD: Uso de etiquetas de Código GeSHi


« Última modificación: 15 Septiembre 2020, 12:20 pm por K-YreX » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda con programa en-lenguaje en c o c++
« Respuesta #1 en: 15 Septiembre 2020, 14:41 pm »

Se me ocurre un árbol binario con dos datos:
Un entero que representa el ID del animal.
Un campo de bits de dos bits (o un entero que representa banderas) indicando si nadó en el primer mar y en el segundo.

Funciona así:

Cuando recibes el ID de un animal primero miras si está en el árbol. Si no está lo añades: a la rama de la izquierda si el número es menor al del nodo y a la derecha si el número es mayor al del nodo. Si no conoces el algoritmo hay muchos ejemplos en internet.
Ahora indicar en que mar a ha nadado usando el cambo de bits (o las banderas).

Una vez que has consumido todas las entradas vuelves a recorrer el árbol informando únicamente de los nodos que tienen han tienen los dos campos de bits activos (o un 3 si has usado un entero para banderas).


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con un programa en lenguaje C if , if else dentro de un if else
Programación C/C++
osnov 3 2,953 Último mensaje 30 Septiembre 2012, 01:42 am
por overxfl0w13
ayuda: programa en lenguaje c « 1 2 »
Programación C/C++
Dayleap 12 5,250 Último mensaje 22 Abril 2016, 00:04 am
por MAFUS
Ayuda: programa en lenguaje C
Programación C/C++
Dayleap 4 2,941 Último mensaje 29 Abril 2016, 09:53 am
por Dayleap
Ayuda por favor programa en lenguaje C
Programación C/C++
marting 0 1,087 Último mensaje 14 Octubre 2018, 22:41 pm
por marting
Ayuda con tarea de programa en lenguaje C
Programación C/C++
dominicanvictor 4 2,655 Último mensaje 9 Agosto 2019, 13:49 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines