Cod sursa(job #126642)
Utilizator | Prigoana Cristian cristiprg | Data | 22 ianuarie 2008 17:21:14 |
---|---|---|---|
Problema | Partitie | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include"fstream"
#include"math.h"
using namespace std;
int c[300010];
int main()
{
ifstream fin("partitie.in");
ofstream fout("partitie.out");
long n,d,v[300010],i,j,max=0;
fin>>n>>d;
for(i=1;i<=n;++i)
fin>>v[i];
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
if(c[i]==c[j]) //daca sunt in aceeasi submultime
{
if(abs(v[i]-v[j])<d)
{
c[j]++;
if(c[j]>max)
max=c[j];
}
}
else
;
fout<<max+1<<"\n";
for(i=1;i<=n;++i)
fout<<c[i]+1<<"\n";
return 0;
fin.close();
fout.close();
}