Mai intai trebuie sa te autentifici.
Cod sursa(job #809484)
Utilizator | Data | 8 noiembrie 2012 16:27:53 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.83 kb |
#include <iostream>
#include <fstream>
#define DN 500005
#define pentru for
using namespace std;
int v[DN],vnew[DN];
int frecv[12];
int main()
{
int n;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=1;i<=n;i++) f>>v[i];
for(int p=1;p<=1000000000;p*=10)
{
for(int i=0;i<9;i++)
frecv[i]=0;
for(int i=1;i<=n;i++)
{
int cc=(v[i]/p)%10;
++frecv[cc+1];
}
for(int i=1;i<=11;i++)
frecv[i]+=frecv[i-1];
for(int i=1;i<=n;i++)
{
int cc=(v[i]/p)%10;
++frecv[cc];
vnew[frecv[cc]]=v[i];
}
for(int i=1;i<=n;i++)
v[i]=vnew[i];
}
for(int i=1;i<=n;i++) g<<v[i]<<" ";
return 0;
}