Cod sursa(job #236673)

Utilizator DraStiKDragos Oprica DraStiK Data 28 decembrie 2008 10:10:29
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
int divide (int p,int q)
{
    int st,dr,x;
    st=p;
    dr=q;
    x=a[p];
    while (st<dr)
    {
        while (st<dr && a[dr]>=x)
            --dr;
        a[st]=a[dr];
        while (st<dr && a[st]<=x)
            ++st;
        a[dr]=a[st];
        a[st]=x;
    }
    return st;
}
void qsort (int p, int q)
{
    int m;
    m=divide (p,q);
    if (m-1>p)
        qsort (p,m-1);
    if (m+1<q)
        qsort (m+1,q);       
}
int main ()
{
    freopen ("economie.in","r",stdin);
    freopen ("economie.out","w",stdout);
    int i;
    scanf ("%d",&n);
    for (i=1; i<=n; ++i)
        scanf ("%d",&a[i]);
    qsort (1,n);
    return 0;
}