Cod sursa(job #3342993)

Utilizator AlexandruCorneaCornea Alexandru Mihai AlexandruCornea Data 26 februarie 2026 12:36:22
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int v[500002],aux[500002];
void interclas(int v[],int st,int dr)
{
    int m=(st+dr)/2,i=st,j=m+1,k=st-1;
    while (i<=m && j<=dr)
    {
        if (v[i]<=v[j]){

            aux[++k]=v[i++];
        }
        else aux[++k]=v[j++];
    }
    while (i<=m)
    {
        aux[++k]=v[i++];
    }
    while (j<=dr)
    {
        aux[++k]=v[j++];
    }
    for (int i=st; i<=dr; i++)
    {
        v[i]=aux[i];
    }
}
void ms(int v[],int st,int dr)
{
    if (st>=dr)
        return;
    int m=(st+dr)/2;
    ms(v,st,m);
    ms(v,m+1,dr);
    interclas(v,st,dr);

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