Cod sursa(job #1703148)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 16 mai 2016 13:02:30
Problema Partitie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#include <algorithm>

using namespace std;

pair<int,int> a[300005];
int n,i,j,ans,d;

int main()
{
    freopen("partitie.in", "r", stdin);
    freopen("partitie.out", "w", stdout);

    scanf("%d%d", &n, &d);

    for(i=1; i<=n; ++i) scanf("%d", &a[i].first), a[i].second=i;
    sort(a+1, a+n+1);

    j=1;
    for(i=1; i<=n; ++i)
    {
         while(a[i].first-a[j].first>=d) ++j;
         if(i-j+1>ans) ans=i-j+1;
    }

    printf("%d\n", ans);

    for(i=1; i<=n; ++i)
        a[a[i].second].first=(i%ans==0?ans:i%ans);
    for(i=1; i<=n; ++i) printf("%d\n", a[i].first);

    return 0;
}