Cod sursa(job #3132673)

Utilizator CalciucaCalarasu Andrei Calciuca Data 23 mai 2023 15:09:34
Problema Partitie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#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;
    }

}