# |
Author |
Problem |
Lang |
Verdict |
Time |
Memory |
Sent |
Judged |
|
120329320 |
Practice:
itian |
999D
- 32
|
C++17 (GCC 7-32)
|
Accepted
|
514 ms
|
22108 KB
|
2021-06-23 03:35:21 |
2021-06-23 03:35:21 |
|
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll arr[1000005];
ll brr[1000005];
set<int>s;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++)
s.insert(i);
ll ans=0;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
int yu=arr[i]%m,x;
if(yu>*s.rbegin())
x=*s.begin();
else
x=*s.lower_bound(yu);
brr[x]++;
if(brr[x]==n/m)
s.erase(x);
ans+=(x-yu+m)%m;
arr[i]+=(x-yu+m)%m;
}
cout<<ans<<endl;
for(int i=1;i<=n;i++)
cout<<arr[i]<<" ";
cout<<endl;
}
Click to see test details