№ |
Отправитель |
Задача |
Язык |
Вердикт |
Время |
Память |
Отослано |
Протест. |
|
148269701 |
Дорешивание:
huixiaoge |
999D
- 32
|
C++14 (GCC 6-32)
|
Полное решение
|
499 мс
|
9580 КБ
|
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;
}
Время: ? ms, память: ? КБ