Cod sursa(job #1239675)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 9 octombrie 2014 16:20:47
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <cstdlib>
#include <ctime>
#define DIM 500011
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
int v[DIM];

inline int poz(int st,int dr){
    int ii=0,jj=-1,aux;
    while(st<dr){
        if(v[st]>v[dr]) aux=v[dr],v[dr]=v[st],v[st]=aux,aux=ii,ii=-jj,jj=-aux;
        st+=ii,dr+=jj;
    }
    return st;
}

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

int main(void){
    register int i,j,aux;

    f>>n;
    for(i=1;i<=n;i++) f>>v[i];
    srand(time(0));
    for(i=1;i<=n;i++)
        j=rand()%n+1,aux=v[i],v[i]=v[j],v[j]=aux;
    quick(1,n);
    for(i=1;i<=n;i++) g<<v[i]<<" ";
    return 0;
}