Pagini recente » Cod sursa (job #886445) | Cod sursa (job #2496346) | Cod sursa (job #2684169) | Cod sursa (job #10764) | Cod sursa (job #182350)
Cod sursa(job #182350)
// 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");
int main()
{
int A[2][NMAX],n,s;
long long aux;
int i,j;
fin>>n>>s;
for (i=1;i<=n;i++)
{
fin>>A[1][i];
A[0][i]=i;
}
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
if (A[1][i]>A[1][j])
{
A[1][i]+=A[1][j];
A[1][j]=A[1][i]-A[1][j];
A[1][i]-=A[1][j];
A[0][i]+=A[0][j];
A[0][j]=A[0][i]-A[0][j];
A[0][i]-=A[0][j];
}
int Sf,St;
Sf=St=1;
int max=0;
for (Sf=1;Sf<=n;Sf++)
{
while (A[1][Sf]-A[1][St]>=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[1][A[0][i]]=j;
for (i=1;i<=n;i++)
fout<<A[1][i]<<'\n';
fout.close();
return 0;
}