Cod sursa(job #1874885)
Utilizator | SucureiRobert sucurei | Data | 10 februarie 2017 15:33:10 |
---|---|---|---|
Problema | Partitie | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("partitie.in");
ofstream g("partitie.out");
int n,d,i,j,rez,a[3<<17],p[3<<17];
bool cmp(int x,int y)
{
return a[x]<a[y];
}
int main()
{
f>>n>>d;
for(i=1;i<=n;++i)
f>>a[i],p[i]=i;
sort(p+1,p+n+1,cmp);
for(i=j=1;i<=n;++i)
{
for(;j<=n&&a[p[i]]-a[p[j]]>=d;++j);
rez=max(rez,i-j+1);
}
g<<rez<<'\n';
for(i=1;i<=n;++i) a[p[i]]=i%rez+1;
for(i=1;i<=n;++i) g<<a[i]<<'\n';
}