Cod sursa(job #339390)

Utilizator RobybrasovRobert Hangu Robybrasov Data 9 august 2009 15:28:30
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#include <cstring>
#define N 500001

int a1[N],a2[N];

int main()
{
    int j,n,max=0,k1,k2;
    long long i;
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%d",&n);
	for (i=1; i<=n; i++)
	{
	    scanf("%d",&a1[i]);
	    if (a1[i]>max) max=a1[i];
	}

    for (i=1; i<=max; i<<=1)
    {
        k1=k2=0;
        for (j=1; j<=n; j++)
            if (a1[j]&i) a2[++k2]=a1[j];
            else a1[++k1]=a1[j];

        for (j=1; j<=k2; j++) a1[k1+j]=a2[j];
    }

	for (i=1; i<=n; i++) printf("%d ",a1[i]);

	return 0;
}