Cod sursa(job #3239533)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 6 august 2024 12:37:10
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;


#define DN 500005
ifstream f("algsort.in");
ofstream g("algsort.out");

int n,A[DN], B[DN];

void read(){
    f>>n;
    for(int i=1;i<=n;++i)
        f>>A[i];
}

void mergeSort(int l,int r)
{
    int m = (l + r)/2,i,j,k;

    if (l == r) return;

    mergeSort(l, m);
    mergeSort(m+1, r);

    for( i = l, j = m+1, k = l; i <= m || j <= r; )
        if( j > r || (i <= m && A[i] < A[j]) )
            B[ k++ ] = A[ i++ ];
        else
            B[ k++ ] = A[ j++ ];
    for( k = l; k <= r; k++ )
        A[k] = B[k];
}

void solve() {
    mergeSort(1,n);
}

void write(){
    for(int i=1;i<=n;++i)
        g<<A[i]<<" ";
}

int main()
{
    read();
    solve();
    write();
    return 0;
}