Pagini recente » Cod sursa (job #1142552) | Cod sursa (job #1067723) | Cod sursa (job #1829682) | Cod sursa (job #450401) | Cod sursa (job #2968716)
#include <fstream>
#include <algorithm>
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=0,j;
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; i<=n; i++)
{
j=0;
if(sol[v[i].second]==0)
sol[v[i].second]=++cnt;
while(j<=n && (v[j].first-v[i].first<d || sol[v[j].second]>0))
j++;
if(j<=n)
sol[v[j].second]=sol[v[i].second];
}
cout<<cnt<<'\n';
for(int i=1; i<=n; i++)
cout<<sol[i]<<'\n';
return 0;
}