Cod sursa(job #844055)

Utilizator elfusFlorin Chirica elfus Data 28 decembrie 2012 19:19:35
Problema Strazi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

struct par
{
    int x, pos;
} x[300100];

bool comp(par A, par B)
{
    return A.x < B.x;
}

int Q[300100], where[300100];

int main()
{
    int i, p, u, N, D;

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

    scanf("%d%d", &N, &D);
    for (i = 1; i <= N; i ++)
    {
        scanf("%d", &x[i].x);
        x[i].pos = i;
    }

    sort(x + 1, x + N + 1, comp);

    p = 1; u = 0;
    for (i = 1; i <= N; i ++)
    {
        if (p <= u && Q[p] + D <= x[i].x)
            p ++, Q[++ u] = x[i].x;
        else
            Q[++ u]
    }
}