Mam problem z poniższym zadaniem:
W pierwszym wierszu danych wejściowych: n - rozmiar tablicy
W drugim n liczb naturalnych oddzielonych spacją - wartości początkowe w poszczególnych komórkach.
Zadaniem programu jest obliczyć ilość "ruchów" potrzebnych do zrównania wszystkich wartości tablicy ze sobą.
Np.
4
2 5 0 1
Prawidłowy wynik to 2, bo wystarczy przenieść "1" z tablicy[1] do tablicy[3] oraz "2" z tablicy[1] do tablicy[2]
Mój kod:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x, all_to_split = 0, per_one = 0, answer = 0;
cin >> x;
int tab[x];
for (int i=0; i<x; i++){
cin >> tab[i];
all_to_split += tab[i];
}
per_one = all_to_split/x;
for (int i=0; i<x; i++){
if (tab[i] < per_one){
answer ++;
}
}
cout << answer << endl;
}
Mój pomysł zakładał zliczenie komórek z niedomiarem, ale widzę, że nie działa i nie mam pomysłów.
Będę wdzięczny za pomoc