Cod sursa(job #273199)

Utilizator cameleonGeorgescu Dan cameleon Data 8 martie 2009 12:27:14
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#include <stdlib.h>
#include<algorithm>
using namespace std;
FILE *f,*g;
long nt,a[500001];;
void insbn(long x)
{       long i, p, u, mj;
	p=0; u=nt-1;
	if(x>=a[u]){a[++u]=x;nt++;return;}
	else{
		if(x<=a[p])p=0;
		else
			while(p<=u)
			{       mj=(p+u)/2;
					if(x<=a[mj])
						u=mj-1;
					else
						p=mj+1;
			}
		for(i=nt+1; i>p; i--)
		{	a[i]=a[i-1];
		}
		a[p]=x;
		nt++;
	   }
}
int main()
{
	long n,i;
		
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%ld",&n);
	nt=0;
	for(i=0; i<n; i++) 
		{scanf("%ld",&a[i]);
		if(i>0)
		insbn(a[i]);
		}
	//sort(a,a+n);
	for(i=0; i<n; i++) printf("%ld ",a[i]);
	return 0;
}