Pagini recente » Cod sursa (job #2190089) | Cod sursa (job #726987) | Cod sursa (job #1758005) | Cod sursa (job #1195556) | Cod sursa (job #1494468)
#include<fstream>
#include<algorithm>
using namespace std;
int n, i, p, u, maxim, r, d;
pair<int, int> v[300005];
int sol[300005];
ifstream fin("partitie.in");
ofstream fout("partitie.out");
int main(){
fin>> n >> d;
for(i = 1; i <= n; i++){
fin>> v[i].first;
v[i].second = i;
}
sort(v + 1, v + n + 1);
u = maxim = 1;
sol[ v[1].second] = 1;
for(i = 2; i <= n; i++){
if(v[u].first + d <= v[i].first){
sol[ v[i].second ] = sol[ v[u].second ];
u++;
}
else{
maxim++;
sol[ v[i].second ] = maxim;
}
}
fout<< maxim <<"\n";
for(i = 1; i <= n; i++){
fout<< sol[i] <<"\n";
}
return 0;
}