Pagini recente » Cod sursa (job #680606) | Cod sursa (job #2710485) | Cod sursa (job #3235304) | Cod sursa (job #2929651) | Cod sursa (job #3132673)
#include <fstream>
int main(){
std::ifstream fin("partitie.in");
std::ofstream fout("partitie.out");
int N,D;
fin>>N>>D;
int a[N+1],sol[N+1];
for(int i=1;i<=N;i++){
fin>>a[i];
}
for(int i=0;i<N-1;i++){
for(int k=i+1;k<N;k++)
if(a[i]>a[k])
{
int aux = a[i];
a[i] = a[k];
a[k] = aux;
}
}
int j=2;int nr=0;
for(int i=1;i<=N;i++){
if(!sol[i]){
sol[i]=++nr;
}
while(j<=N && (sol[j]>0 || a[j]<a[i]+D)){
j++;
}
if(j<=N){
sol[j]=sol[i];
}
}
fout<<nr<<std::endl;
for(int i=1;i<=N;i++){
fout<<sol[i]<<std::endl;
}
}