Bläddra i källkod

[2024][c][Day_1] Adding solution for Part 2

Vinicius Teshima 1 år sedan
förälder
incheckning
ec1462240e
1 ändrade filer med 20 tillägg och 5 borttagningar
  1. 20 5
      2024/c/Day_1/main.c

+ 20 - 5
2024/c/Day_1/main.c

@@ -64,18 +64,33 @@ main(int argc, char *argv[])
 	}
 	}
 
-	qsort(left, left_size, sizeof(*left), cmp_sort);
-	qsort(right, right_size, sizeof(*right), cmp_sort);
-
 	if ( left_size != right_size ) {
 		printf("Sizes differ");
 		exit(EXIT_FAILURE);
 	}
 
-	for ( i = 0; i < left_size; ++i ) {
-		res += labs(left[i] - right[i]);
+	if ( argc == 1 ) {
+		qsort(left, left_size, sizeof(*left), cmp_sort);
+		qsort(right, right_size, sizeof(*right), cmp_sort);
+
+		for ( i = 0; i < left_size; ++i ) {
+			res += labs(left[i] - right[i]);
+		}
+	} else {
+		for ( i = 0; i < left_size; ++i ) {
+			size_t j = 0;
+			long it = left[i];
+			long count = 0;
+			for ( j = 0; j < right_size; ++j ) {
+				count += ( it == right[j] );
+			}
+
+			res += it * count;
+		
+		}
 	}
 
+
 	printf("Result: %ld\n", res);
 
 	free(left);