Pagini recente » Cod sursa (job #1654021) | Cod sursa (job #2922447) | Cod sursa (job #1457248) | Cod sursa (job #2050604) | Cod sursa (job #1019625)
#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;
}