Cod sursa(job #1019625)

Utilizator hellol30FMI Macovei Daniel hellol30 Data 31 octombrie 2013 17:43:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#define Nmax 500005
using namespace std;
int a[Nmax],b[Nmax];
int n;
void merge(int s, int d)
{if(s<d)
	{int m=(s+d)/2,i=s,j=m+1,k=s;
	 merge(s,m);
	 merge(m+1,d);
	 for(;i<=m && j<=d;k++)
        b[k]=(a[i]>a[j])? a[j++]: a[i++]; 
	 for(;i<=m;i++,k++) b[k]=a[i];
	 for(;j<=d;j++,k++) b[k]=a[j];
     for(i=s;i<=d;i++) a[i]=b[i];
	}
}
int main()
{
	freopen("algsort.in","rt",stdin);
	freopen("algsort.out","wt",stdout);
	scanf("%d",&n);
	for(register int i=1;i<=n;i++) scanf("%d",&a[i]);
	merge(1,n);
	for(register int i=1;i<=n;i++) printf("%d ",a[i]);
	printf("\n");
	return 0;
}