Cod sursa(job #3366063)

Utilizator stefan_ciureaStefan Ciurea stefan_ciurea Data 28 septembrie 2026 20:15:50
Problema Partitie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
// #pragma GCC optimize("O3,unroll-loops,fast-math")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define fi first
#define se second

using namespace std;

const int Nmax=3e5+5,inf=1e9,MOD=1e9+7;

pii v[Nmax];
int gr[Nmax];

int main() {
    ifstream cin("partitie.in");
    ofstream cout("partitie.out");
    
    int n,d;
    cin>>n>>d;
    for (int i=1; i<=n; ++i) {
        cin>>v[i].fi;
        v[i].se=i;
    }
    sort(v+1,v+n+1);
    int k=0;
    int j=1;
    for (int i=1; i<=n; ++i) {
        while (j<=n && v[i].fi-v[j].fi>=d) ++j;
        k=max(k,i-j+1);
    }
    for (int i=1; i<=n; ++i) gr[v[i].se]=i%k+1;
    cout<<k<<"\n";
    for (int i=1; i<=n; ++i) cout<<gr[i]<<"\n";
    
    return 0;
}