Pagini recente » oni_2012_ziua2_clasele_xi-xii | Statisticile problemei Consiliul tribului | Cod sursa (job #229744) | Cod sursa (job #281646) | Cod sursa (job #2278043)
#include <cstdio>
#include <algorithm>
#define nmax 500005
using namespace std;
FILE *f= fopen("algsort.in", "r");
FILE *g =fopen("algsort.out", "w");
int v[500001];
void qs(int p, int q)
{
int st=p, dr=q, x=v[(st+dr)>>1];
do {
while (st<q && v[st]<x)
st++;
while (dr>p && v[dr]>x)
dr--;
if (st<=dr) {
swap(v[st],v[dr]);
st++;dr--;
}
}while (st<=dr);
if (p<dr) qs(p,dr);
if (st<q) qs(st,q);
}
int main()
{
int n,i,j;
fscanf(f, "%d", &n);
for (i=1; i<=n; i++)
fscanf(f, "%d", &v[i]);
qs(1,n);
for (i=1; i<=n; i++)
fprintf(g, "%d ",v[i]);
return 0;
}