|
@@ -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 ) {
|
|
if ( left_size != right_size ) {
|
|
|
printf("Sizes differ");
|
|
printf("Sizes differ");
|
|
|
exit(EXIT_FAILURE);
|
|
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);
|
|
printf("Result: %ld\n", res);
|
|
|
|
|
|
|
|
free(left);
|
|
free(left);
|