Cod sursa(job #3254057)

Utilizator Robert_NicuNicu Robert Cristian Robert_Nicu Data 5 noiembrie 2024 21:10:33
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 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];

int poz(int a[], int st, int dr){
    int ist=st, idr=dr;
    int dst=0, ddr=-1;
    while(ist<idr){
        if(a[ist]>a[idr]){
            swap(a[ist], a[idr]);
            swap(dst, ddr);
            dst=-dst;
            ddr=-ddr;
        }
        ist+=dst;
        idr+=ddr;
    }
    return ist;
}

void sortare(int a[], int st, int dr){
    if(st<dr){
        int p=poz(a, st, dr);
        sortare(a, st, p);
        sortare(a, p+1, 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]<<" ";
}