Pagini recente » Cod sursa (job #1678744) | Cod sursa (job #1706817) | Cod sursa (job #3254850) | Cod sursa (job #892890) | Cod sursa (job #2968705)
#include <fstream>
#include <algorithm>
#pragma GCC ooptimize("O1")
#pragma GCC ooptimize("O2")
#pragma GCC ooptimize("O3")
#pragma GCC ooptimize("unroll-loops")
using namespace std;
pair <int, int >v[300005];
int sol[300005];
int main()
{
ifstream cin("partitie.in");
ofstream cout("partitie.out");
int n,d,cnt=1;
cin>>n>>d;
for(int i=0; i<n; i++)
cin>>v[i].first, v[i].second=i;
sort(v,v+n);
for(int i=0; i<n; i++)
{
if(sol[v[i].second]==0)
sol[v[i].second]=cnt,cnt++;
for(int j=i+1; j<n; j++)
{
if(v[j].first-d>=v[i].first && sol[v[j].second]==0)
{
sol[v[j].second]=sol[v[i].second];
break;
}
}
}
cout<<cnt-1<<'\n';
for(int i=0; i<n; i++)
cout<<sol[i]<<'\n';
return 0;
}