Pagini recente » Cod sursa (job #1466850) | Cod sursa (job #1423522) | Cod sursa (job #2329212) | Cod sursa (job #3241360) | Cod sursa (job #1013993)
#include <iostream>
#include <fstream>
#define a 500005
using namespace std;
ifstream f("sort.in");
ofstream g("sort.out");
int nou[a],cnt[11],v[a],n;
void Reset();
void Modify();
void Read();
void Write();
void Construct(int pz);
void Lerizare(int pz);
void Copy();
int main()
{
Read();
for(int j=0,pz=1;j<11;j++,pz*=10)
{
Reset();
Construct(pz);
Modify();
Lerizare(pz);
Copy();
}
Write();
return 0;
}
void Read()
{
f>>n;
for(int i=0;i<n;i++) f>>v[i];
}
void Write()
{
for(int i=0;i<n;i++) g<<v[i]<<' ';
f.close();
g.close();
}
void Reset()
{
for(int i=0;i<=11;i++) cnt[i]=0;
}
void Construct(int pz)
{
for(int i=0;i<n;i++)
cnt[(v[i]/pz)%10+1]++;
}
void Modify()
{
for(int i=1;i<=11;i++) cnt[i]+=cnt[i-1];
}
void Lerizare(int pz)
{
for(int i=0;i<n;i++)
{
cnt[(v[i]/pz)%10]++;
nou[cnt[(v[i]/pz)%10]-1]=v[i];
}
}
void Copy()
{
for(int i=0;i<n;i++) v[i]=nou[i];
}