Pagini recente » Cod sursa (job #1795166) | Cod sursa (job #3003264) | Cod sursa (job #2953829) | Cod sursa (job #2567642) | Cod sursa (job #809497)
Cod sursa(job #809497)
#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]<<" ";
}