Cod sursa(job #410516)

Utilizator toniobFMI - Barbalau Antonio toniob Data 4 martie 2010 14:08:07
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;

ifstream FIn("algsort.in");
ofstream FOut("algsort.out");

const long long NMax=500002;
long long V[NMax];

void IN(){
	FIn>>V[0];
	for(long long i=1;i<=V[0];++i){
		FIn>>V[i];
	}
}

void OUT(){
	for(long long i=1;i<=V[0];++i){
		FOut<<V[i]<<" ";
	}
}

void MERGE_SORT(long long l,long long r){
	if(l==r){
		return;
	}
	long long m=(l+r)>>1,aux[V[0]+1];
	MERGE_SORT(l,m);
	MERGE_SORT(m+1,r);
	for(long long i=l,k=l,j=m+1;i<=m||j<=r;++k){
		if(j>r||(i<=m&&V[i]<V[j])){
			aux[k]=V[i];
			++i;
		}
		else{
			aux[k]=V[j];
			++j;
		}
	}
	for(long long i=l;i<=r;++i){
		V[i]=aux[i];
	}
}

int main(){
	IN();
	MERGE_SORT(1,V[0]);
	OUT();
	
	return 0;
}