Cod sursa(job #1494468)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 1 octombrie 2015 10:12:47
Problema Partitie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<algorithm>
using namespace std;
int n, i, p, u, maxim, r, d;
pair<int, int> v[300005];
int sol[300005];
ifstream fin("partitie.in");
ofstream fout("partitie.out");
int main(){
    fin>> n >> d;
    for(i = 1; i <= n; i++){
        fin>> v[i].first;
        v[i].second = i;
    }
    sort(v + 1, v + n + 1);
    u = maxim = 1;
    sol[ v[1].second] = 1;
    for(i = 2; i <= n; i++){
        if(v[u].first + d <= v[i].first){
            sol[ v[i].second ] = sol[ v[u].second ];
            u++;
        }
        else{
            maxim++;
            sol[ v[i].second ] = maxim;
        }
    }
    fout<< maxim <<"\n";
    for(i = 1; i <= n; i++){
        fout<< sol[i] <<"\n";
    }
    return 0;
}