#include <stdio.h>
int eval(int , int * );
int main( int argc , char * argv[] ) {
int i , j , num , ele[10000] , output[10000] , totalCase = 0;
do {
scanf("%d" , &num);
if(num == -1)
break;
totalCase ++;
for( j = 0 ; j < num ; j++ ) {
scanf( "%d" , &ele[j] );
}
output[totalCase - 1] = eval(num , ele);
} while (1);
for( i = 0 ; i < totalCase ; i++ ) {
printf("%d\n",output[i]);
}
return 0;
}
int eval(int num , int * ele) {
int i , sum = 0 , average = 0;
float avg = 0.0;
int count = 0 , check = 0;
for(i = 0 ; i < num ; i++) {
sum += ele[i];
}
avg = (float) (sum / (float) num);
average ++;
if(avg - (int) avg == 0) {
average = (int) avg;
for(i = 0 ; i < num ; i++ ) {
int diff = ele[i] - average;
//printf(" Checking for element = %d , average = %d\n" , ele[i] , average);
if(diff > 0) {
check = check + diff;
count += diff;
//printf("Removing from element %d and check = %d\n" , diff , check);
}
else if( diff < 0) {
check = check + diff;
//count += (-1 * diff);
//printf("moving into element %d and check = %d\n" , diff , check);
}
}
if(check == 0)
return count;
else
return -1;
}
else {
return -1;
}
return 0;
}
System Design for Beginners
A masterclass that helps early engineers and product managers become great at designing scalable systems.
132+ learners
Details →System Design Masterclass
A masterclass that helps you become great at designing scalable, fault-tolerant, and highly available systems.
1000+ learners
Details →Redis Internals
Learn internals of Redis by re-implementing some of the core features in Golang.
98+ learners
Details →