Cod sursa(job #1385495)

Utilizator PletoPletosu Cosmin-Andrei Pleto Data 11 martie 2015 23:57:11
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <algorithm>
#define nmax 500010
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");

int N,V[nmax],A[nmax];

void cit()
{
    in>>N;
    for(int i=1;i<=N;++i)
        in>>V[i];
}

void afis()
{
    for(int i=1;i<=N;++i)
        out<<V[i]<<" ";
    out<<'\n';
}

void mergesort(int st,int dr)
{
    int m=(st+dr)/2;
    if(st==dr) return;
    mergesort(st,m);
    mergesort(m+1,dr);
    int i=st,j=m+1,k=st;
    while(i<=m || j<=dr)
    {
        if(j>dr || (i<= m && V[i] < V[j])) A[k++]=V[i++];
        else A[k++]=V[j++];
    }
    for(i=st;i<=dr;++i)
        V[i]=A[i];
}

int main()
{
    cit();
    mergesort(1,N);
    afis();
    in.close();out.close();return 0;
}