# |
Author |
Problem |
Lang |
Verdict |
Time |
Memory |
Sent |
Judged |
|
148269701 |
Practice:
huixiaoge |
999D
- 32
|
C++14 (GCC 6-32)
|
Accepted
|
499 ms
|
9580 KB
|
2022-03-04 12:35:53 |
2022-03-04 12:35:53 |
|
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
long long int a[N],cnt[N],n,m,ans;
set<int>s;
int main(void)
{
cin>>n>>m;
for(int i=0;i<m;i++) s.insert(i);
int k=n/m;
for(int i=0;i<n;i++)
{
cin>>a[i];
int d=a[i]%m,x;
if(d>*s.rbegin()) x=*s.begin();
else x=*s.lower_bound(d);
cnt[x]++;
if(cnt[x]==k) s.erase(x);
ans+=(x-d+m)%m;
a[i]+=(x-d+m)%m;
}
cout<<ans<<endl;
for(int i=0;i<n;i++) cout<<a[i]<<" ";
return 0;
}
Click to see test details