Pagini recente » Cod sursa (job #2280832) | Cod sursa (job #1911589) | Cod sursa (job #1898216) | Cod sursa (job #543442) | Cod sursa (job #182354)
Cod sursa(job #182354)
// Partitie . infoareana
// Schimb sortarea la mutarea pe linux
#include <fstream>
#include <algorithm>
using namespace std;
#define NMAX 300009
ifstream fin("partitie.in");
ofstream fout("partitie.out");
struct part
{
int v;
int c;
} ;
int sortare(part a,part b)
{
return (a.v<b.v);
}
int main()
{
part A[NMAX];
int n,s;
long long aux;
int i,j;
fin>>n>>s;
for (i=1;i<=n;i++)
{
fin>>A[i].v;
A[i].c=i;
}
sort(A+1,A+(n+1),sortare);
int Sf,St;
Sf=St=1;
int max=0;
for (Sf=1;Sf<=n;Sf++)
{
while (A[Sf].v-A[St].v>=s)
{
if (Sf-St>max) max=Sf-St;
St++;
}
}
fout<<max<<'\n';
for (i=1,j=1;i<=n;i++,j=j%max+1)
A[A[i].c].v=j;
for (i=1;i<=n;i++)
fout<<A[i].v<<'\n';
fout.close();
return 0;
}