?
№ | Отправитель | Задача | Язык | Вердикт | Время | Память | Отослано | Протест. | |
---|---|---|---|---|---|---|---|---|---|
192770088 |
Дорешивание: Archaeopteryx |
999D - 32 | C++20 (GCC 11-64) | Полное решение | 546 мс | 12576 КБ | 2023-02-08 20:15:16 | 2023-02-08 20:15:16 |
#include<bits/stdc++.h> #define int long long using namespace std; int a[200005],c[200005],m,n,ans=0; set<int>s; signed main(){ cin>>n>>m; for(int i=0;i<m;i++)s.insert(i); for(int i=1,j,k;i<=n;i++){ cin>>a[i]; j=a[i]%m; if(j>*s.rbegin())k=*s.begin(); else k=*s.lower_bound(j); if(++c[k]==n/m) s.erase(k); ans+=(k-j+m)%m; a[i]+=(k-j+m)%m; } cout<<ans<<endl; for(int i=1;i<=n;i++) cout<<a[i]<<" "; }
?
?
?
?