请问这个做法哪里假了,20pts

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
#define int long long
using namespace std;
priority_queue<int> q;
int n , t;
const int N = 5000010;
int a[N];
int ans;
vector<int> d;
signed main(){
cin >> n >> t;
for(int i = 1;i <= n;i++) scanf("%lld" , &a[i]) , q.push(a[i]);
while(q.size() >= t){
d.clear();
int i = 1;
while(i <= t) d.push_back(q.top()) , q.pop() , i++;
int k = d.back();
for(int i : d) if(i - k > 0) q.push(i - k);
ans += k;
}
cout << ans << endl;
return 0;
}