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
#include <iostream> #include <map> int main(int argc, char** argv) { int N=100000, rango=2, AnimalesEnDosMares=0, acumulador=0; scanf("%d", &N); int matriz[N][rango]; for(int i=0; i<N; i++) { scanf("%d", &matriz[i][0]); scanf("%d", &matriz[i][1]); } for(int i=0; i<N; i++) { for(int k=0; k<N; k++) { if(matriz[k][0]==matriz[i][0]) { if(matriz[k][1]==1) { acumulador++; } if(matriz[k][1]==2) { acumulador++; } } } if(acumulador==2) { AnimalesEnDosMares++; } } printf("\n%d", AnimalesEnDosMares); return 0; }
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