Help me in solving MAKEALLEQUAL problem

My issue

what’s wrong here
I am getting few failed test cases due to wrong answer

My code

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
   int x;
	cin>>x;
	for(int t=0;t<x;t++){
	   
	    int n,m;
	    cin>>n>>m;
	    vector<int>arr(n);
	    if(n==1 || n==0)cout<<0<<endl;
	    int count=0;
	    for(int i=0;i<n;i++)cin>>arr[i];
	    
	    sort(arr.begin(),arr.end());
	    int ele=arr[n-1];

	    for(int i=n-2;i>=0;i--){
	        while(arr[i]!=ele){
	            int diff=ele-arr[i];
	            for(int j=i;j>=max(i-m+1,0);j--){
	                arr[j]+=diff;
	            }
	        count=count+diff;
	        }
	    }
	    
	cout<<count<<endl;
	}
   return 0;
}

Problem Link: Make All Equal Practice Coding Problem - CodeChef