Pagini recente » Cod sursa (job #1675552) | Cod sursa (job #236399) | Borderou de evaluare (job #2509365) | Cod sursa (job #635261) | Cod sursa (job #2377249)
#include <bits/stdc++.h>
using namespace std;
const int b=32000;
struct parser{
char *B,*E,*p;
parser()
{
B=new char[b+10];
E=B+b;
Load();
}
parser &operator>>(int &x)
{
while(*p<'0' || *p>'9')Next();
x=0;
while(*p>='0' && *p<='9')
{
x=x*10+*p-'0';
Next();
}
return *this;
}
void Load()
{
p=B;
memset(B,0,b);
fread(B,1,b,stdin);
}
void Next()
{
p++;
if(p==E)Load();
}
};
int partitie(int *A,int Start,int End)
{
int ind=Start+rand()%(End-Start+1);
swap(A[ind],A[End]);
int pivot=A[End];
int pIndex=Start;
for(int i=Start;i<End;i++)
{
if(A[i]<=pivot)
{
swap(A[i],A[pIndex]);
pIndex++;
}
}
swap(A[End],A[pIndex]);
return pIndex;
}
void quick(int *A,int Start,int End)
{
if(Start<End)
{
int index=partitie(A,Start,End);
quick(A,Start,index-1);
quick(A,index+1,End);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
parser fin;
int n,v[500001];
fin>>n;
for(int i=1;i<=n;i++)fin>>v[i];
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
{
printf("%d ",v[i]);
}
return 0;
}