№ |
Отправитель |
Задача |
Язык |
Вердикт |
Время |
Память |
Отослано |
Протест. |
|
151480797 |
Дорешивание:
bkifhr10 |
999D
- 32
|
C++17 (GCC 9-64)
|
Полное решение
|
436 мс
|
9688 КБ
|
2022-03-31 11:44:46 |
2022-03-31 11:44:46 |
|
#include<bits/stdc++.h>
using namespace std;
const int kMaxN=2e5+1;
vector<int>r[kMaxN];
int a[kMaxN],n,m;
long long ans;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
r[a[i]%m].push_back(i);
}
for(int i=0,j=0;i<m;i++){
while(r[i].size()>n/m){
for(j=max(i,j);r[j%m].size()>=n/m;j++){
}
a[r[i].back()]+=j-i,ans+=j-i;
r[j%m].push_back(r[i].back()),r[i].pop_back();
}
}
cout<<ans<<endl;
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
Время: ? ms, память: ? КБ