Pagini recente » Cod sursa (job #2495957) | Cod sursa (job #1365480) | Cod sursa (job #2876651) | Cod sursa (job #1127107) | Cod sursa (job #380266)
Cod sursa(job #380266)
#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 p = l + rand()%(r-l+1);
int v = a[p];
swap(a[p], 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;
}