Given an array of n elements (a1,a2,..ai,...,an). You are allow to chose any index i and j, such that (i!=j) and allow to perform
increment operation on ai = ai+1 and decrements operation on aj = aj - 1 infinite number of times. How many maximum number of elements you can find that have same number.
example 1:
1 4 1
ans: 3
example 2:
2 1
example 1:
1 4 1
ans: 3
example 2:
2 1
ans : 1
---------------------------
Increment and decrement could be performed more than once...
uint max_equal(int *a, uint n) {
int s = 0;
for (uint i = 0; i < n; i++) {
s = (s + a[i])%n; // avoid overflow issues at slight cost of performance.
// assumes % returns 0 to n-1.
}
return s==0 ? n : n-1;
}