Cod sursa(job #3255501)

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

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

int n, i;
int a[DIM];

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

            aux=dst;
            dst=-ddr;
            ddr=-aux;
        }
        ist+=dst;
        idr+=ddr;
    }
    return ist;
}

void sortare(int st, int dr){
    if(st<dr){
        int p=poz(st, dr);
        sortare(st, p-1);
        sortare(p+1, dr);
    }
}

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