Cod sursa(job #2924073)

Utilizator antonio_sefu_tauLaslau Antonio antonio_sefu_tau Data 24 septembrie 2022 13:31:18
Problema Partitie Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <algorithm>
using namespace std;
const int dim=3e5+5;
int n,d,luat[dim],nr;
struct idk{
    int val,poz;
}a[dim];
bool cmp(idk x, idk y){
    return x.val<y.val;
}
int main(){
    ifstream f("partitie.in");
    ofstream g("partitie.out");
    f>>n>>d;
    for(int i=1;i<=n;i++)
        f>>a[i].val,a[i].poz=i;
    sort(a+1,a+n+1,cmp);
    int j=2;
    for(int i=1;i<=n;i++){
        if(luat[a[i].poz]==0)
            luat[a[i].poz]=++nr;
        while(j<=n and a[j].val-a[i].val<d)
            j++;
        luat[a[j++].poz]=luat[a[i].poz];
    }
    g<<nr<<endl;
    for(int i=1;i<=n;i++)
        g<<luat[i]<<endl;
    return 0;
}