Cod sursa(job #3254019)

Utilizator Robert_NicuNicu Robert Cristian Robert_Nicu Data 5 noiembrie 2024 19:48:23
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>
#define DIM 500001
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int n, i;
int v[DIM];

void inter(int a[], int st, int dr){
    int mij=(st+dr)/2;
    int i1=st, i2=mij+1;
    int poz=st-1;
    int i[DIM];
    while(i1<=mij && i2<=dr)
        if(a[i1]<=a[i2])
            i[++poz]=a[i1++];
        else i[++poz]=a[i2++];
    while(i1<=mij)
        i[++poz]=a[i1++];
    while(i2<=dr)
        i[++poz]=a[i2++];
    for(poz=st; poz<=dr; poz++)
        a[poz]=i[poz];

}

void sortare(int a[], int st, int dr){
    if(st<dr){
        int mij=(st+dr)/2;
        sortare(a, st, mij);
        sortare(a, mij+1, dr);
    }
    inter(a, st, dr);
}

int main(){
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];
    sortare(v, 1, n);
    for(i=1; i<=n; i++)
        fout<<v[i]<<" ";
}