Pagini recente » Cod sursa (job #481902) | Borderou de evaluare (job #371126) | Cod sursa (job #2930284) | Cod sursa (job #2333750) | Cod sursa (job #643962)
Cod sursa(job #643962)
#include<stdio.h>
#include<vector>
# define MAX 666013
using namespace std;
vector<long long> G[MAX],Count[MAX];
long long n,x,mi=1<<31 - 1,ma=-1,poz;
int gasire(long long x)
{
int i;
long long a=x% MAX;
for (i=0;i<G[a].size();++i)
if (G[a][i]==x)
return i;
return G[a].size();
}
void inserare( long long x)
{
long long a=x % MAX, i =gasire(x) ;
if (i==G[a].size()){
G[a].push_back(x);
Count[a].push_back(1);
}
else
Count[a][i]++;
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%lld ",&n);
for (long long i=1;i<=n;++i)
{
scanf("%lld ",&x);
if (x<mi)
mi=x;
if (x>ma)
ma=x;
inserare(x);
}
for (long long i=mi;i<=ma;++i)
{ int ok=0;
for (long long j=0;j<G[i%MAX].size();++j)
if(G[i%MAX][j]==i){
ok=1;
poz=j;
}
if (ok==1)
for (long long j=1;j<=Count[i%MAX][poz];++j)
printf("%lld ",i);
}
return 0;
}