Pagini recente » Cod sursa (job #2304339) | Cod sursa (job #305359) | Cod sursa (job #1219256) | Cod sursa (job #2322401) | Cod sursa (job #809478)
Cod sursa(job #809478)
#include <fstream>
using namespace std;
int n, a[500001], rez[500001], s[11], c[11];
int i, p;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int main()
{
cin>>n;
for(i=0; i<n; i++)
{
cin>>a[i];
}
for(p=1; p<=2e10; p*=10)
{
bool ok=false;
for(i=1; i<=n; i++)
{
if(a[i]>p)
ok=true;
}
if(!ok)
break;
for(i=-1; i<=9; i++)
{
c[i]=0;
s[i]=0;
}
for(i=0; i<n; i++)
{
c[(a[i]/p)%10]++;
}
for(i=0; i<=9; i++)
{
s[i]=s[i-1]+c[i];
}
for(i=0; i<n; i++)
{
rez[s[(a[i]/p)%10-1]]=a[i];
s[(a[i]/p)%10-1]++;
}
for(i=0; i<n; i++)
{
a[i]=rez[i];
}
}
for(i=0; i<n; i++)
cout<<a[i]<<" ";
}