Cod sursa(job #2501163)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 29 noiembrie 2019 10:04:10
Problema Partitie Scor 50
Compilator cpp-64 Status done
Runda simu Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("partitie.in");
ofstream cout("partitie.out");

long long n,k,ok[100005],ans,j;
pair<int,int>v[100005];

int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>v[i].first;
        v[i].second=i;
    }
    sort(v+1,v+n+1);
    for(int i=n;i>0;i--){
        if(ok[v[i].second]==0){
            ans++;
            ok[v[i].second]=ans;
            j=i-1;
            while(j>0){
                if(ok[v[j].second]==0){
                    if(v[i].first-v[j].first>=k){
                        ok[v[j].second]=ans;
                        v[i].first=v[j].first;
                    }
                }
                j--;
            }
        }
    }
    cout<<ans<<'\n';
    for(int i=1;i<=n;i++){
        cout<<ok[i]<<'\n';
    }

    return 0;
}