Pagini recente » Cod sursa (job #2777826) | Cod sursa (job #844394) | Cod sursa (job #1367895) | Cod sursa (job #866855) | Cod sursa (job #1401953)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
typedef int var;
ifstream fin("partitie.in");
ofstream fout("partitie.out");
#define MAXN 500001
vector<pair<var, var> >V;
#define mp make_pair
var COLOR[MAXN];
int main() {
var n, d, val;
fin>>n>>d;
for(var i=1; i<=n; i++) {
fin>>val;
V.push_back(mp(val, i));
}
sort(V.begin(), V.end());
var last = -200000000, maxc = -1;
for(var i=0; i<V.size(); i++) {
if(V[i].first >= last + d) {
COLOR[V[i].second] = 1;
last = V[i].first;
} else {
COLOR[V[i].second] = COLOR[V[i-1].second] + 1;
}
maxc = max(maxc, COLOR[V[i].second]);
}
fout<<maxc<<'\n';
for(var i=1; i<=n; i++) {
fout<<COLOR[i]<<'\n';
}
return 0;
}