Pagini recente » Cod sursa (job #1040770) | Cod sursa (job #1610789) | Cod sursa (job #2121184) | Cod sursa (job #642570) | Cod sursa (job #1703148)
#include <cstdio>
#include <algorithm>
using namespace std;
pair<int,int> a[300005];
int n,i,j,ans,d;
int main()
{
freopen("partitie.in", "r", stdin);
freopen("partitie.out", "w", stdout);
scanf("%d%d", &n, &d);
for(i=1; i<=n; ++i) scanf("%d", &a[i].first), a[i].second=i;
sort(a+1, a+n+1);
j=1;
for(i=1; i<=n; ++i)
{
while(a[i].first-a[j].first>=d) ++j;
if(i-j+1>ans) ans=i-j+1;
}
printf("%d\n", ans);
for(i=1; i<=n; ++i)
a[a[i].second].first=(i%ans==0?ans:i%ans);
for(i=1; i<=n; ++i) printf("%d\n", a[i].first);
return 0;
}