Cod sursa(job #1448347)

Utilizator SwagginInMyJaysaaaaaaaaaaaas SwagginInMyJays Data 6 iunie 2015 18:54:00
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>

const int lmn = 500003;

int a[lmn], b[lmn], c[lmn];

void msort (int l, int r){
    int m = (l + r) >> 1;
    if (l == r) return;
    int i, j, k;
    msort(l, m);
    msort(m + 1, r);
    for (i = k = l, j = m + 1; i <= m && j <= r; ){
            if (a[i] < a[j])
               b[k++] = a[i++];
               else b[k++] = a[j++];
    }
    for (; i <= m; i++)
        b[k++] = a[i];
    for (; j <= r; j++)
        b[k++] = a[j];
    for (k = l ; k <= r; k++)
        a[k] = b[k];
}

int main(){
    freopen ("algsort.in", "r", stdin);
    freopen ("algsort.out", "w", stdout);
    int n;
    scanf ("%d", &n);
    for (int i = 0; i < n; i++)
        scanf ("%d", &a[i]);
    msort(0, n - 1);
    for (int i = 0; i < n; i++)
        printf ("%d ", a[i]);
    return 0;
}