Pagini recente » Cod sursa (job #3366197) | Cod sursa (job #3367273) | Cod sursa (job #3367279) | Monitorul de evaluare | Cod sursa (job #3366063)
// #pragma GCC optimize("O3,unroll-loops,fast-math")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
const int Nmax=3e5+5,inf=1e9,MOD=1e9+7;
pii v[Nmax];
int gr[Nmax];
int main() {
ifstream cin("partitie.in");
ofstream cout("partitie.out");
int n,d;
cin>>n>>d;
for (int i=1; i<=n; ++i) {
cin>>v[i].fi;
v[i].se=i;
}
sort(v+1,v+n+1);
int k=0;
int j=1;
for (int i=1; i<=n; ++i) {
while (j<=n && v[i].fi-v[j].fi>=d) ++j;
k=max(k,i-j+1);
}
for (int i=1; i<=n; ++i) gr[v[i].se]=i%k+1;
cout<<k<<"\n";
for (int i=1; i<=n; ++i) cout<<gr[i]<<"\n";
return 0;
}