Cod sursa(job #2515711)

Utilizator betybety bety bety Data 29 decembrie 2019 13:37:50
Problema Partitie Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream in("partitie.in");
ofstream out("partitie.out");
unordered_map<int,int> m;
vector<int> v;
const int lim=1e5+3;
int sol[lim];
int main()
{
    int n,d,a;
    in>>n>>d;
    for(int i=1;i<=n;++i)
    {
        in>>a;
        v.push_back(a);
        m[a]=i;
    }
    sort(v.begin(),v.end());
    int grupa=0;
    while(v.size())
    {
        ++grupa;
        int ind=0;
        while(ind<v.size())
        {
            sol[m[v[ind]]]=grupa;
            int last=v[ind];
            v.erase(v.begin()+ind);
            ind=lower_bound(v.begin()+ind,v.end(),last+d)-v.begin();
        }
    }
    out<<grupa<<endl;
    for(int i=1;i<=n;++i)
        out<<sol[i]<<endl;
    return 0;
}