Pagini recente » Cod sursa (job #972402) | Cod sursa (job #1316262) | Cod sursa (job #2351420) | Cod sursa (job #2710709) | Cod sursa (job #126371)
Cod sursa(job #126371)
#include <stdio.h>
#include <algorithm>
#define MMax 300010
using namespace std;
struct nod {long ind; long val; };
nod m[MMax];
long d, n, maxx;
long a[MMax];
int cmp(nod a, nod b)
{
return a.val<b.val;
}
int main()
{
freopen("partitie.in","r",stdin);
freopen("partitie.out","w",stdout);
long i, j;
scanf("%ld %ld", &n, &d);
for (i=1; i<=n; ++i)
{
scanf("%ld", &m[i].val);
m[i].ind=i;
}
sort(m+1,m+n+1, cmp);
for (i=1; i<=n;)
{
for (j=i; j<=n && m[j].val-m[i].val<=d-1; ++j);
if (maxx<(j-i)) maxx=j-i;
i=j;
}
printf("%ld\n", maxx);
int maxy=1;
for (i=1; i<=n; ++i)
{
a[m[i].ind]=maxy;
++maxy;
if (maxy>maxx) maxy=1;
}
for (i=1; i<=n; ++i)
printf("%ld\n", a[i]);
fclose(stdin);
fclose(stdout);
return 0;
}