#include <stdio.h>
#include <stdlib.h>
int
cmpfunc(
const
void
* a,
const
void
* b)
{
return
(*(
int
*)a - *(
int
*)b);
}
int
maximumCount(
int
arr1[],
int
arr2[],
int
s1,
int
s2)
{
int
sum1 = 0, sum2 = 0;
for
(
int
i = 0; i < s1; i++)
sum1 += arr1[i];
for
(
int
j = 0; j < s2; j++)
sum2 += arr2[j];
int
len = 0;
if
(s1 >= s2)
len = s2;
else
len = s1;
qsort
(arr1, s1,
sizeof
(
int
), cmpfunc);
qsort
(arr2, s2,
sizeof
(
int
), cmpfunc);
int
j = 0, k = s2 - 1, count = 0;
for
(
int
i = 0; i < len; i++) {
if
(sum1 <= sum2) {
if
(arr2[k] >= arr1[i]) {
int
dif1 = arr1[j], dif2 = arr2[k];
sum1 -= dif1;
sum1 += dif2;
sum2 -= dif2;
sum2 += dif1;
j++;
k--;
count++;
}
else
break
;
}
else
break
;
}
return
count;
}
int
main()
{
int
arr1[] = { 1, 3, 2, 4 };
int
arr2[] = { 6, 7, 8 };
int
N =
sizeof
(arr1) /
sizeof
(arr1[0]);
int
M =
sizeof
(arr2) /
sizeof
(arr2[0]);
printf
(
"%d"
, maximumCount(arr1, arr2, N, M));
return
0;
}