Pagini recente » Cod sursa (job #134698) | Cod sursa (job #3210499) | Cod sursa (job #1132545) | Cod sursa (job #238078) | Cod sursa (job #1040679)
#include<fstream>
#include<cmath>
#define numaru 500001
using namespace std;
int v[numaru],z[numaru],a[20][10];
int n;
ifstream f("algsort.in");
ofstream g("algsort.out");
void sortsort(int p,int d)
{
int i;
for(i=1;i<=n;++i) ++a[d][v[i]/p%10];
for(i=1;i<10;++i) a[d][i]+=a[d][i-1];
for(i=n;i>=1;--i) z[ a[d][ v[i]/p%10 ]-- ] = v[i];
for(i=1;i<=n;++i) v[i]=z[i];
}
int main()
{
int i,_max,p;
f>>n;
f>>v[1];
_max=v[1];
for(i=2;i<=n;++i)
{
f>>v[i];
if(v[i]>_max)_max=v[i];
}
_max=(int)log10(_max)+1;
for(i=0,p=1;i<_max;++i,p*=10)
{
sortsort(p,i);
}
for(i=1;i<=n;++i)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}