Cod sursa(job #3253956)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 5 noiembrie 2024 16:25:18
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

#define DIM 500000

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

//ifstream f("filesmodel.in");
//ofstream g("filesmodel.out");

int n;
int v[DIM+5];

int i,j,k;
int w[DIM+5];

void merge_sort(int st,int dr){

    if(st == dr){
        return;
    }

    int mid = (st+dr)/2;
    merge_sort(st,mid);
    merge_sort(mid+1,dr);

    i = st,j = mid+1;k = 0;
    while(i<=mid && j<=dr){
        if(v[i] < v[j]){
            w[++k] = v[i++];
        }else{
            w[++k] = v[j++];
        }
    }

    while(i<=mid){
        w[++k] = v[i++];
    }
    while(j<=dr){
        w[++k] = v[j++];
    }

    for(i = st,j = 1;i<=dr;i++,j++){
        v[i] = w[j];
    }
}


int main(){

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

    merge_sort(1,n);

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

    return 0;
}