Pagini recente » Cod sursa (job #653812) | Cod sursa (job #373274) | Cod sursa (job #1103182) | Cod sursa (job #1329561) | Cod sursa (job #410521)
Cod sursa(job #410521)
#include <fstream>
using namespace std;
ifstream FIn("algsort.in");
ofstream FOut("algsort.out");
const long long NMax=(long long)50000002;
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[NMax];
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;
}