Cod sursa(job #1493952)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 30 septembrie 2015 10:11:26
Problema Partitie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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);
    for(i = 1; i <= n; i++){
        while(v[u + 1].first < v[i].first + d && u < n){
            u++;
        }
        maxim = max(maxim, u - i + 1);
    }
    fout<< maxim <<"\n";
    for(i = 1; i <= n; i++){
        r = i % maxim;
        if(r == 0){
            r = maxim;
        }
        sol[ v[i].second ] = r;
    }
    for(i = 1; i <= n; i++){
        fout<< sol[i] <<"\n";
    }
    return 0;
}