Pagini recente » Cod sursa (job #825899) | Cod sursa (job #1593857) | Cod sursa (job #862380) | Cod sursa (job #3225832) | Cod sursa (job #1743986)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("partitie.in");
ofstream cout("partitie.out");
pair<int, int> v[300010];
int color[300010];
int main() {
int n, d, answer = 0;
cin >> n >> d;
for (int i = 1; i <= n; i++) {
cin >> v[i].first;
v[i].second = i;
}
sort(v + 1, v + n + 1);
for (int i = 1, j = 1; i <= n; i++) {
while (d <= v[i].first - v[j].first)
j++;
answer = max(answer, i - j + 1);
}
for (int i = 1; i <= n; i++)
color[v[i].second] = i % answer + 1;
cout << answer << "\n";
for (int i = 1; i <= n; i++)
cout << color[i] << "\n";
return 0;
}