Pagini recente » Cod sursa (job #2825916) | Cod sursa (job #1180850) | Cod sursa (job #1118001) | Cod sursa (job #3235091) | Cod sursa (job #1312924)
# include <cstdio>
# include <vector>
# define N 500010
# define pb push_back
# define DIM (1<<16)
using namespace std;
int poz,n;
int a[N];
char buff[DIM];
vector <int> G[10];
void citeste(int &numar)
{
numar = 0;
while (buff[poz] < '0' || buff[poz] > '9')
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
}
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
citeste(n);
for(int i=0; i<n; ++i, citeste(a[i]));
int div=1;
for(int i=1; i<=10; ++i)
{
a[0]=0;
for(int j=0; j<10; ++j)
G[j].clear();
for(int j=1; j<=n; ++j)
{
int list=a[j]/div%10;
G[list].pb(a[j]);
}
for(int j=0; j<=10; ++j)
for(int q=0; q<G[j].size(); ++q)
a[++a[0]]=G[j][q];
div*=10;
}
for(int i=1; i<=a[0]; ++i)
printf("%d ", a[i]);
}