Pagini recente » Cod sursa (job #516952) | Cod sursa (job #91094) | Cod sursa (job #719093) | Cod sursa (job #2675279) | Cod sursa (job #380265)
Cod sursa(job #380265)
#include <cstdio>
#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std;
#define N 500001
#define dim 8192
char ax[dim];
int pz;
inline void cit(int &x)
{
x = 0;
while(ax[pz] < '0' || ax[pz] > '9')
if(++pz == dim) fread(ax,1,dim,stdin),pz =0;
while(ax[pz] >= '0' && ax[pz] <= '9')
{
x = x * 10 + ax[pz] - '0';
if(++pz == dim) fread(ax,1,dim,stdin),pz = 0;
}
}
int a[N];
int n;
inline void quick(int a[], int l, int r)
{
if(l >= r) return;
int v = a[r];
//swap(a[(l+r)/2], a[r]);
int i , j = l-1;
for(i = l; i <= r; ++i)
if(a[i] <= v)
swap(a[i], a[++j]);
quick(a, l, j-1);
quick(a, j+1, r);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
cit(n);
for(int i = 1; i <= n; ++i)
cit(a[i]);
quick(a, 1, n);
for(int i =1; i <= n; ++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}