Cod sursa(job #2662186)

Utilizator chriss_b_001Cristian Benghe chriss_b_001 Data 23 octombrie 2020 17:24:51
Problema Partitie Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("partitie.in");
ofstream g("partitie.out");

int v[300001], P[300001];

bool cmp(int a, int b)
{
    return v[a] < v[b];
}

int main()
{
    int N, D, Max = 0;
    f >> N >> D;
    for(int i = 1; i <= N; ++i)
    {
        f >> v[i];
        P[i] = i;
    }

    sort(P + 1, P + N + 1, cmp);
    sort(v + 1, v + N + 1);


    for(int i = 1; i <= N; ++i)
    {
        int j;
        for(j = i + 1; j <= N; ++j)
            if(v[j] - v[i] > D - 1)break;
        Max = max(Max, j - i);
        i = j;
    }
    g << Max << '\n';

    for(int i = 1; i <= N; ++i)
        v[P[i]] = i % Max + 1;

    for(int i = 1; i <= N; ++i)
        g << v[i] << '\n';
    return 0;
}